複数列のListViewでクリック可能なアクションを有効にする方法は? 複数列のカスタム listView 内で EditText を使用している場合、listView 項目を選択できません。リスト項目はクリックできないためです。EditText 手段を使用しない場合、リスト項目をクリックできます。しかし、カスタム リストビュー内で EditText を使用した場合、itemClick は許可されません。
public class TicketActivity extends Activity{
TextView t1;
TextView t2;
ListView l1;
TextView t6;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.ticket);
t1=(TextView)findViewById(R.id.textView3);
t2=(TextView)findViewById(R.id.textView5);
l1=(ListView)findViewById(R.id.listView1);
//Get the Table no Value From Edit Text
Intent i1=getIntent();
Bundle b=i1.getExtras();
int num=b.getInt("Table No:");
String pno=Integer.toString(num);
t1.setText(pno);
//Get The Guest Value From Edit Text
Intent i2=getIntent();
Bundle b1=i2.getExtras();
int num1=b1.getInt("Guest:");
String pno1=Integer.toString(num1);
t2.setText(pno1);
// List<String> st=GlobalClass.myval;
//ArrayAdapter<String> ada = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1,st);
l1.setAdapter(new EfficientAdapter(TicketActivity.this));
l1.setOnItemClickListener(new OnItemClickListener(){
public void onItemClick(AdapterView<?> parent,View view,int position,long id){
String[] s1 = (String[]) parent.getItemAtPosition(position);
Toast.makeText(getApplicationContext(), "Selected:"+ s1,Toast.LENGTH_SHORT).show();
}
});
}
private static class EfficientAdapter extends BaseAdapter{
private LayoutInflater mInflater;
public EfficientAdapter(Context context){
mInflater=LayoutInflater.from(context);
// implementation of EfficientAdapter
}
public int getCount() {
return GlobalClass.myval.size();
}
public Object getItem(int position) {
return position;
}
public long getItemId(int position) {
return position ;
}
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
String[] stockArr = new String[GlobalClass.myval.size()];
stockArr = GlobalClass.myval.toArray(stockArr);
String[] stockArr1=new String[GlobalClass.myvals.size()];
stockArr1=GlobalClass.myvals.toArray(stockArr1);
if(convertView==null){
convertView=mInflater.inflate(R.layout.list_ticket, null);
holder=new ViewHolder();
holder.Text1=(EditText) convertView.findViewById(R.id.editText1);
holder.Text2=(TextView) convertView.findViewById(R.id.textView2);
holder.Text3=(TextView) convertView.findViewById(R.id.textView3);
convertView.setTag(holder);
}
else{
holder=(ViewHolder)convertView.getTag();
}
holder.Text1.setText("1");
holder.Text2.setText(stockArr[position]);
holder.Text3.setText(stockArr1[position]);
return convertView;
}
}
static class ViewHolder{
EditText Text1;
TextView Text2;
TextView Text3;
}
}