2012-08-06 73 views
0

如何啓用多列ListView中的可單擊操作?如果我使用多列的ListView自定義裏面的EditText,但我不能選擇列表視圖items.Because列表項不clickable.if我不使用的EditText意味着,我可以單擊列表中的項目。但是如果我在自定義列表視圖中使用EditText,則不允許itemClick。如何啓用多列ListView中的可單擊操作?

 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; 

    } 
    } 

回答

0

試試這個

android:focusable="true" 
0

你必須使用setOnItemClickListener()爲您listview.You可通過以下方式使用它。

l1.setOnItemClickListener(yourListener); 

private OnItemClickListener yourListener = new OnItemClickListener() { 
    private String getSelectedItemOfList; 

    public void onItemClick(AdapterView<?> view, View view1, int pos, 
      long arg3) { 
     // TODO Auto-generated method stub 

     getSelectedItemOfList = yourlist.get(pos).toString; // Here you can get selected item of listview. 
    } 
} 

希望這會有所幫助。讓我知道它是否有用?

相關問題