Created
March 6, 2014 08:59
-
-
Save danhper/9385712 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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