Я хочу получить доступ к кнопке, определенной в отдельном макете xml из MainActivity, и делать такие вещи, как onClick на кнопке. Я использовал LayoutInflater, как показано ниже в MainActivity, но метод onClick не обнаруживает нажатие кнопки. Кнопка определена внутри LinearLayout, которая отображается в пользовательском ListView пользовательским адаптером. Я могу настроить метод onClick внутри класса, который раздувает LinearLayout (xml-файл), но как же я могу сделать что-то в MainActivity после обнаружения нажатия кнопки?Android - Доступ к кнопке, определенной в другом макете от MainActivity
Могу ли я обнаружить нажатия кнопок внутри MainActivity? Или мне нужно создать связь между LinearLayout, которая содержит кнопку и MainActivity через Intent? Скажите, пожалуйста, некоторые из возможных способов сделать это.
MainActivity:
LayoutInflater inflater = this.getLayoutInflater();
LinearLayout list_item = (LinearLayout)inflater.inflate(R.layout.list_item, null);
Button deleteBtn = (Button)list_item.findViewById(R.id.deleteBtn);
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Log.d(TAG, "delete button clicked");
statusList.setOnDataSelectionListener(new OnDataSelectionListener() {
@Override
public void onDataSelected(AdapterView parent, View v, int position, long id) {
Log.d(TAG, "delete button clicked inside onDataselected");
DeleteStatusThread thread = new MainActivity.DeleteStatusThread(id);
thread.start();
}
});
}
});
Вы могли бы хотеть проверить этот блог, который я написал: http://blog.antrromet.com /2013/07/handling-clicks-within-list-items-in.html – Antrromet
Вы уверены, что вид, который вы надули, тот, который отображается в макете?, Потому что я не вижу его добавленного в макет –
list_item.xml устанавливает макет для LinearLayout. Затем я использую адаптер для отображения макета в ListView, определенного в Activity_main.xml. Я раздуваю list_item, потому что я определил кнопку внутри него. –