Skip to content

Instantly share code, notes, and snippets.

@danhper
Created March 6, 2014 08:59
Show Gist options
  • Save danhper/9385712 to your computer and use it in GitHub Desktop.
Save danhper/9385712 to your computer and use it in GitHub Desktop.
package com.example.customlistview;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView lv = (ListView)findViewById(R.id.listView1);
// CustomAdapterを作成
// コンストラクタの第二引数に行のレイアウトを入れる
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_item_button){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO 自動生成されたメソッド・スタブ
// inflaterを使ってレイアウトxmlからViewを生成
if(convertView == null){
convertView = getLayoutInflater().inflate(R.layout.list_item_button, null);
}
// ボタンにタグ(位置)をセット
Button btn = (Button)convertView.findViewById(R.id.button1);
btn.setOnClickListener(new ButtonClickListener(position));
// テキストビューにアイテムをセット
TextView tv = (TextView)convertView.findViewById(R.id.textView1);
tv.setText(getItem(position));
return convertView;
}
private class ButtonClickListener implements View.OnClickListener {
private int position;
public ButtonClickListener(int position) {
this.position = position;
}
public void onClick(View v) {
System.out.println("Button " + this.position + " clicked");
}
}
};
for(int i = 0; i < 10; i++){
adapter.add("text" + i);
}
lv.setAdapter(adapter);
// 行をクリックしたときの処理を記述
lv.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
// TODO 自動生成されたメソッド・スタブ
// トーストにて確認
Toast.makeText(MainActivity.this, "list item clicked, " + arg2, Toast.LENGTH_SHORT).show();
}
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment