2012-08-06 3 views
0

Comment activer l'action cliquable dans la ListView multicolonne? si j'utilise EditText dans la liste personnalisée multicolonne, mais je ne peux pas sélectionner les éléments listView. Parce que les éléments de la liste ne sont pas cliquables. Si je n'utilise pas les moyens EditText, je peux cliquer sur les éléments de la liste. Mais si j'ai utilisé EditText dans la liste personnalisée, itemClick n'est pas autorisé.Comment activer l'action cliquable dans la ListView multicolonne?

 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; 

    } 
    } 

Répondre

0

Essayez cette

android:focusable="true" 
0

Vous devez utiliser setOnItemClickListener() pour votre listview.You peut l'utiliser de la manière suivante.

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. 
    } 
} 

Espérons que cela aide.Laissez-moi savoir que cela fonctionne ou pas?

Questions connexes