2016-05-04 5 views
0

Ich möchte auf eine Schaltfläche zugreifen, die in einem separaten XML-Layout von MainActivity definiert ist und Dinge wie onClick auf die Schaltfläche tun. Ich habe LayoutInflater verwendet, wie unten in MainActivity gezeigt, aber die Methode onClick erkennt die Schaltfläche nicht, auf die geklickt wird. Die Schaltfläche wird in einem LinearLayout definiert, das in einem benutzerdefinierten ListView von einem benutzerdefinierten Adapter angezeigt wird. Ich kann eine onClick-Methode in einer Klasse einrichten, die die LinearLayout (XML-Datei) aufbläht, aber wie würde ich dann in MainActivity vorgehen, nachdem ich einen Button-Klick erkannt habe?Android - Zugriff auf eine Schaltfläche, die in einem anderen Layout von MainActivity definiert wurde

Kann ich Tastenklicks in MainActivity erkennen? Oder muss ich die Kommunikation zwischen dem LinearLayout, das die Schaltfläche enthält, und MainActivity über Intent erstellen? Bitte erzähle mir einige der möglichen Wege, dies zu tun.

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

Vielleicht möchten Sie diesen Blog überprüfen, die ich schrieb: http://blog.antrromet.com /2013/07/handling-clicks-within-list-items-in.html – Antrromet

+0

Sind Sie sicher, dass die Ansicht, die Sie aufgebläht haben, diejenige ist, die im Layout angezeigt wird ?, weil ich sehe, dass es nicht zum Layout hinzugefügt wird –

+0

list_item.xml legt das Layout für LinearLayout fest. Dann verwende ich einen Adapter, um das Layout in der ListView anzuzeigen, die in activity_main.xml definiert ist. Ich vergrößere list_item, weil ich die Schaltfläche darin definiert habe. –

Antwort

0

list_item von Hauptansicht hinzugefügt werden sollte, den Quellcode überprüfen darüber

Verwandte Themen