Dies ist eine Methode zum Ändern der Verarbeitung in Abhängigkeit von der berührten Liste, wenn die ListView mehrere Listen enthält, wie unten gezeigt.
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/food"
android:id="@+id/food"></ListView>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/drink"
android:id="@+id/drink"></ListView>
Wenn Sie die Liste der Lebensmittel berühren, "Das Lebensmittel, das Sie ausgewählt haben, ist XX", Wenn Sie die Getränkekarte berühren, versuchen Sie, einen Toast mit der Aufschrift "Das von Ihnen ausgewählte Getränk ist XX" zuzubereiten.
strings.xml
<resources>
<string name="app_name">ListView</string>
<string name="text_food">Kapuze</string>
<string name="text_drink">Trinken</string>
<string-array name="food">
<item>Fleisch</item>
<item>Fisch</item>
</string-array>
<string-array name="drink">
<item>Saft</item>
<item>Tee</item>
</string-array>
</resources>
activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text_food"/>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/food"
android:id="@+id/food"></ListView>
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="@string/text_drink"/>
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/drink"
android:id="@+id/drink"></ListView>
</LinearLayout>
MainActivity.java
package com.websarva.wings.android.listview;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ListView foodListView = findViewById(R.id.food);
ListView drinkListView = findViewById(R.id.drink);
foodListView.setOnItemClickListener(new ListItemClickListener());
drinkListView.setOnItemClickListener(new ListItemClickListener());
}
/**
*Verarbeitung, wenn das Element in ListView gedrückt wird
*/
private class ListItemClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
ListView foodList = findViewById(R.id.food);
ListView drinkList = findViewById(R.id.drink);
String item = (String) parent.getItemAtPosition(position);
String show;
if(parent == foodList){
show = "Das Essen, das Sie wählen" + item;
Toast.makeText(MainActivity.this,show,Toast.LENGTH_LONG).show();
}
if (parent == drinkList){
show = "Das Getränk, das Sie wählen" + item;
Toast.makeText(MainActivity.this,show,Toast.LENGTH_LONG).show();
}
}
}
}
Da der links angezeigte Toast das Fleisch berührt hat, wird "Das von Ihnen gewählte Essen ist XX" angezeigt. Der Toast auf der rechten Seite berührte den Saft. "Sie haben ihn gewählt, also ist das Getränk XX." Wird angezeigt.
private class ListItemClickListener implements AdapterView.OnItemClickListener{
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id){
ListView foodList = findViewById(R.id.food);・ ・ ・ ➀
ListView drinkList = findViewById(R.id.drink);・ ・ ・ ➀
String item = (String) parent.getItemAtPosition(position);
String show;
if(parent == foodList){・ ・ ・ ➁
show = "Das Essen, das Sie wählen" + item;
Toast.makeText(MainActivity.this,show,Toast.LENGTH_LONG).show();
}
if (parent == drinkList){・ ・ ・ ➁
show = "Das Getränk, das Sie wählen" + item;
Toast.makeText(MainActivity.this,show,Toast.LENGTH_LONG).show();
}
}
}
Verwenden Sie die findViewById-Methode, um die ID jeder ListView abzurufen und festzustellen, welche Liste berührt wurde.
Vergleichen Sie die in ➀ erhaltene ID mit der übergeordneten ID, bestimmen Sie die berührte ListView und führen Sie den Prozess aus.
Recommended Posts