2017-05-16 4 views
0

Ich versuche Informationen an die nächste Aktivität in meiner Anwendung zu übergeben, basierend darauf, welches Listenansichtselement ausgewählt wurde. StartActivity wird jedoch aufgerufen, wenn auf eine benutzerdefinierte Schaltfläche (id: button_go) geklickt wird.So leiten Sie Informationen an die nächste Aktivität weiter, basierend darauf, welches Element in der benutzerdefinierten Listenansicht ausgewählt wurde

Ich glaube, den gemeinsamen Weg, um Informationen zu übergeben, basierend auf Artikel, welcher Listenansicht ausgewählt wird, den folgenden Code ist durch:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapter, View view, int position, long id){ 
      Intent intent = new Intent(getActivity(), Detail_Activity.class); 

     } 
    }); 

Aber in meiner Klasse nicht funktioniert, wie es mit einem Knopf verbunden ist. Mein Code in meiner Liste View Fragment folgt.

class CustomAdapter extends BaseAdapter { 

    @Override 
    public int getCount() { 
     return testArray.length; 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     view = getActivity().getLayoutInflater().inflate(R.layout.customlayout,null); 


     Button button_go = (Button)view.findViewById(R.id.button_go); 


     button_go.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
      } 
       // Perform action on click 
       //startActivity(new Intent(getActivity(), Detail_Activity.class)); 
      } 
     }); 


     return view; 
    } 
} 

}

+0

Also, was ist der Fehler? –

+1

Mögliches Duplikat von [http://stackoverflow.com/questions/18199674/passing-data-between-activities-from-listview-to-and-otheractivity] –

Antwort

1

Erstellen Sie Ihre Intent in Ihrer Schaltfläche onClickListener, und die Lage versetzen (oder jede andere Listenelement spezifische Informationen) der Taste im Intent als Extra angeklickt.

button_go.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View v) { 
      Intent intent = new Intent(getActivity(), Detail_Activity.class)); 
      intent.putExtra("position", i); 
      startActivity(intent); 
     } 
    }); 

erhalten dann die Position der Taste in der neuen Aktivität des geklickt onCreate() mit:

Integer buttonPos = getIntent().getIntExtra("position"); 
0

ich bin nicht sicher, was Ihre Frage ist. Können Sie mir bitte sagen, was passiert, wenn Sie auf den Button klicken? Versuchen Sie, ein Protokoll hinzuzufügen, um sicherzustellen, dass onClick aufgerufen wird.

Ihr Problem ist, dass Sie nicht wissen, wie Sie Informationen in der neuen Aktivität weiterleiten oder dass Ihre Aktivität nicht startet?

FYI, Sie können das Element an dieser Position abrufen, indem Sie getItem (Position) aufrufen.

Verwandte Themen