2017-10-24 2 views
-1

Ich habe eine ListView und ich möchte eine Funktion entsprechend dem angeklickten Wert auf ListView für jetzt ausführen möchte ich nur nur wissen, wie zu bekommen und toasten den Wert, den ich versuchte, es zu tun, aber nicht den richtigen Code kennen. .. bitte überprüfe meinen Code. Hinzufügen onClick to listview?

public class SubCategory extends AppCompatActivity implements View.OnClickListener { 

private ListView listView; 
String buttonType; 
ArrayAdapter adapter; 

static final String[] FRUITS = new String[] { "Apple", "Avocado", "Banana"}; 
static final String[] NAMES = new String[] { "Sachin", "Brett", "Shane", "Zaheer"}; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_sub_category); 



    Bundle bundle = getIntent().getExtras(); 
    if(bundle != null) { 
     buttonType = bundle.getString("BUTTON_CLICKED"); 
    } 
    if(buttonType != null && buttonType.equals("A")) { 
     adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, FRUITS); 
    } else if(buttonType != null && buttonType.equals("B")) { 
     adapter = new ArrayAdapter<String>(this, R.layout.activity_listview, NAMES); 
    } 
    listView = (ListView)findViewById(R.id.listview); 
    listView.setAdapter(adapter); 
} 

    public void getList() { 

     Toast.makeText(listView.getContext(), Toast.LENGTH_LONG).show(); 

    } 

    @Override 
    public void onClick(View v) { 
     switch (v.getId()){ 
      case R.id.listview: 
       getList(); 
       break; 
    } 
} 
} 
+2

Verwenden 'AdapterView.OnItemClickListener' statt' 'OnClickListener Listview-Reihe zu bekommen klickt –

+0

@ ρяσѕρєяK können Sie meinen Code anzeigen zu bearbeiten? –

Antwort

2

versuchen diese

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     String value=""; 
     if(!TextUtils.isEmpty(buttonType) && buttonType.equals("A")) { 
      value=FRUITS[position]; 
     } else if(!TextUtils.isEmpty(buttonType) && buttonType.equals("B")) { 
      value=NAMES[position]; 
     } 
    // you can get value in "value" 
     showToast(value); 
    } 
}); 
public void showToast(String value) { 

    Toast.makeText(this,value, Toast.LENGTH_LONG).show(); 

} 
+0

Wie füge ich einen Code hinzu, um den Wert zu erhöhen? –

+0

Danke ... Ich habe es. –

+0

@SumitPal Ich habe meine Antwort aktualisiert Bitte überprüfen Sie –

3
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     list.get(position).GET_INFORMATION(); //GET_INFORMATION will be the method in your POJO class 
    } 
}); 
+0

Es gibt eine Fehlerüberprüfung dieses [screenshot] (https://www.dropbox.com/s/aryb3b50a4mt159/error.png?dl=0). –

+0

In welcher Datei schreibst du diesen Code? Dies kommt in Ihrer Aktivitätsklasse nach listView.setAdapter (adapter); –

+0

Ja, ich schreibe es gerade dort unter listView.setAdapter (Adapter); und unter onCreat-Funktion. –

1

Klick Zuhörer hinzuzufügen diese Schritte wie dies in oncreate Verfahren der Aktivität

1.Add Klick Zuhörer zur Listenansicht folgen.

listView.setOnItemClickListener(this);

2.Umsetzung OnItemClickListener der Tätigkeit.

public class Main2Activity extends AppCompatActivity implements AdapterView.OnItemClickListener { 

3.Überwachen Sie die onItemClick-Methode in der Aktivität.

@Override 
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
    //Call method here 
} 
+0

Ich habe es. Danke für die Unterstützung. :) –