2016-05-04 3 views
0

Я хочу получить доступ к кнопке, определенной в отдельном макете 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(); 
       } 
      }); 
     } 

    }); 
+0

Вы могли бы хотеть проверить этот блог, который я написал: http://blog.antrromet.com /2013/07/handling-clicks-within-list-items-in.html – Antrromet

+0

Вы уверены, что вид, который вы надули, тот, который отображается в макете?, Потому что я не вижу его добавленного в макет –

+0

list_item.xml устанавливает макет для LinearLayout. Затем я использую адаптер для отображения макета в ListView, определенного в Activity_main.xml. Я раздуваю list_item, потому что я определил кнопку внутри него. –

ответ

0

list_item должны быть добавлены на главном экране, проверьте исходный код об этом

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