2015-04-30 14 views
0

Я пытаюсь захватить нажатие кнопки в MainActivity, но это не сработало со мной. Как это сделать. Я поставил тост в моем getView, похоже, работает, но как поймать щелчок в MainActivity.Custom ArrayAdapter, listView, кнопка

@Override 
public View getView(final int position, View convertView, ViewGroup parent){ 


    LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 


    rowView = inflater.inflate(R.layout.gestionmaps, parent, false); 


    textView = (TextView) rowView.findViewById(R.id.textView02); 
    btn2  = (Button) rowView.findViewById(R.id.spinner02); 
    btn  = (Button) rowView.findViewById(R.id.del02); 

    textView.setText(values.get(position)); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 




      Toast.makeText(context, "btn "+position, Toast.LENGTH_SHORT).show(); 

     } 
    }); 

    btn2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Toast.makeText(context, "btn0 "+position, Toast.LENGTH_SHORT).show(); 

     } 
    }); 

return rowView; 

} 
+0

Вы можете разместить код вашего MainActivity, а также, пожалуйста? – Jerry

ответ

0

Для того, чтобы иметь onClick из ваша кнопка в YourActivity добавьте это линия к вашему Button xml файл.

list_item.xml

<Button 
    android:onClick="onClickButtonOne" 
    .../> 

Activity.java

public void onClickButtonOne(View v) { 
    // button one onclick here. 
    int position = listview.getPositionForView(v); 
} 
+0

Спасибо, что я работаю над тем, что мне нужно также захватить текст TextView и позицию элемента. –

+0

использовать 'int position = lv.getPositionForView (v)', чтобы получить postion. –

+0

Это работа. Спасибо, еще один вопрос, извините за нарушение, но у вас есть идея, как получить Text TextView, который находится в той же строке, что и кнопка. –

0

Ваш код не работает, потому что при нажатии кнопки button1 и button2, щелкает потребляются List Item

Решение:

@Override 
public View getView(final int position, View convertView, ViewGroup parent){ 


    LayoutInflater inflater = (LayoutInflater) context.getSystemService(context.LAYOUT_INFLATER_SERVICE); 


    rowView = inflater.inflate(R.layout.gestionmaps, parent, false); 


    textView = (TextView) rowView.findViewById(R.id.textView02); 
    btn2  = (Button) rowView.findViewById(R.id.spinner02); 
    btn  = (Button) rowView.findViewById(R.id.del02); 

    textView.setText(values.get(position)); 

    btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 




      Toast.makeText(context, "btn "+position, Toast.LENGTH_SHORT).show(); 

     } 
    }); 

    btn2.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      Toast.makeText(context, "btn0 "+position, Toast.LENGTH_SHORT).show(); 

     } 
    }); 
rootView.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View view) { 
     // put logs here to check if it is executed when you click outside button area 
     } 

    }); 
return rowView; 

} 
Смежные вопросы