ListViewとButtonの結合
3561 ワード
public class Main extends Activity {
ListView list;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list = (ListView) findViewById(R.id.lv);
MyAdapter adapter = new MyAdapter(this);
list.setAdapter(adapter);
list.setItemsCanFocus(false);
list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
list.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
ViewHolder holder = (ViewHolder) view.getTag();
String string = holder.file_name.getText().toString();
holder.download_btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Toast.makeText(Main.this, "123", 2000).show();
}
});
Toast.makeText(Main.this, string, 2000).show();
}
});
}
}
public class MyAdapter extends BaseAdapter {
private LayoutInflater mInflater;
private List<Map<String, Object>> mData;
public MyAdapter(Context context) {
mInflater = LayoutInflater.from(context);
init();
} //
private void init() {
mData = new ArrayList<Map<String, Object>>();
Map<String, Object> map = new HashMap<String, Object>();
map.put("file_name", " ");
map.put("file_time", "2011/07/09");
mData.add(map);
map = new HashMap<String, Object>();
map.put("file_name", " ");
map.put("file_time", "2011/07/09");
mData.add(map);
}
@Override
public int getCount() {
return mData.size();
}
@Override
public Object getItem(int position) {
return null;
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
// convertView null convertView。
if (convertView == null) {
holder = new ViewHolder();
convertView = mInflater.inflate(R.layout.list, null);
holder.file_name = (TextView) convertView
.findViewById(R.id.file_name);
holder.file_time = (TextView) convertView
.findViewById(R.id.file_time);
holder.download_btn = (Button) convertView
.findViewById(R.id.download_btn);
holder.download_btn.setFocusable(false);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.file_name.setText(mData.get(position).get("file_name").toString());
holder.file_time.setText(mData.get(position).get("file_time").toString());
final String string = mData.get(position).get("file_name").toString();
holder.download_btn.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
System.out.println(string);
}
});
return convertView;
}
public final class ViewHolder {
public TextView file_name;
public TextView file_time;
public Button download_btn;
}
}