2016-04-20 3 views
3

In meiner Aktivität habe ich eine Listenansicht und eine Schaltfläche. Jeder hat einen eigenen Zweck.So stellen Sie eine Schaltfläche außerhalb von lisview ein

Meine Listenansicht zeigt eine Artikeldetails in einer anderen Aktivität.

Meine Schaltfläche öffnet eine andere Aktivität.

Hier hat listview kein Problem. Aber mein Knopf funktioniert nicht.

In meinem Code ich für Listenansicht und Knopf

public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener{ 

    private Button buttonaddticket; 

    private ListView listView; 
    @Override 
     protected void onCreate(Bundle savedInstanceState) { 
      super.onCreate(savedInstanceState); 
      setContentView(R.layout.MainActivity); 

      listView = (ListView) findViewById(R.id.srListView); 

      listView.setOnItemClickListener(this); 

      buttonaddticket = (Button) findViewById(R.id.btnaddticket); 

      //Setting listeners to button 
      buttonaddticket.setOnClickListener((View.OnClickListener) this); 

     } 
     . 
     . 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     Intent intent = new Intent(this, SingleTicket.class); 
     . 
     } 


    public void onClick(View v) { 
     if(v == buttonaddticket){ 
     . 
     . 
     } 
    } 
     } 

Frage ist folgendes Beispiel verwendet habe, wie ich OnClickListener in derselben Tätigkeit für meine Schaltfläche implementieren kann?

+1

yourButton.setOnClickListener() –

+0

Satz listner auf Taste in oncreate einfach – Abhishek

+0

Ja, ich habe dies bereits versucht, aber es scheint OnClickListener und OnItemClickListener nicht in derselben Aktivität arbeiten – tanvir

Antwort

3

Sie können für mehrere Listener implementiert Ihre Activity

public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener,View.OnClickListener{ 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     // handle listview on item click 
    } 

    @Override 
    public void onClick(View view){ 
     switch (view.getId()){ 
        //handle multiple view click events 
     } 
    } 

} 
0

Was Sie tun müssen, ist die Referenz auf die Schaltfläche erhalten und die „View.OnClickListener“ Schnittstelle, um den Klick zu bekommen verwenden, um zu registrieren. Um sicherzustellen, dass die Schaltfläche den Klick registriert, muss der Listener auf "diese" Aktivität eingestellt sein. Dadurch kann Ihre Liste die Klicks im Vergleich zu Ihrer Schaltfläche einzeln erfassen.

public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener, View.OnClickListener { 

    private Button yourButton; 
    private ListView listView; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.MainActivity); 

     yourButton = (Button) findViewById(/* Your button id */); 
     yourButton.setOnClickListener(this); 

     listView = (ListView) findViewById(/* Your list id */); 
     listView.setOnItemClickListener(this); 
    } 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
    // handle listview item click here 
    } 

    @Override 
    public void onClick(View view){ 
     //Handle button click here 
    } 
} 
0

Versuchen Sie das !!!

public class MainActivity extends AppCompatActivity implements ListView.OnItemClickListener, View.OnClickListener { 

private Button buttonaddticket; 
private ListView listView; 

@Override 
    public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.MainActivity); 

    buttonaddticket = (Button) findViewById(R.id.btnaddticket); 
    buttonaddticket.setOnClickListener(this); 

    listView = (ListView) findViewById(R.id.srListView); 

    listView.setOnItemClickListener(this); 
} 

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
// handle listview item click here 
} 

@Override 
public void onClick(View view){ 
    switch(view.getId()){ 
    case R.id.btnaddticket: 

    // Enter Code here  
    break; 

    } 
} 
} 
Verwandte Themen