use*_*996 -4 android listview loops items
想要快速回答如何列出我的列表视图中的所有项目,以便打印列表或共享到记事本应用程序等.也就是说,从列表视图中获取以下信息的变量:"apple","banana" , "橙子".以下是我的列表视图.谢谢
String[] values = new String[] { "apple", "banana", "orange" };
listItems = new ArrayList<String>();
for (int i = 0; i < values.length; ++i) {
listItems.add(values[i]);
}
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_1, android.R.id.text1,
listItems);
// Assign adapter to ListView
listView.setAdapter(adapter);
Run Code Online (Sandbox Code Playgroud)
你的问题说,
循环遍历列表视图中的所有项目.
我从你的代码知道你是想从添加项目String array到ArrayList.
但是,您可以直接将String数组作为第三个参数传递给您ArrayAdapter.
看看Android工作室提供的建议ArrayAdapter.你可以通过String[]或ArrayList太:

您可以传递String [],或者如果您想将所有String []项循环到ArrayList,您可以只使用一行.
Collections.addAll(arrayList,values);
Run Code Online (Sandbox Code Playgroud)
arrayList -ArrayList
价值观 -String[]
代替,
listItems = new ArrayList<String>();
for (int i = 0; i < values.length; ++i) {
listItems.add(values[i]);
}
Run Code Online (Sandbox Code Playgroud)
在评论部分,你说
我想我可以一次添加/删除项目
listView.
在这种情况下,您可以使用一些按钮重新加载列表以显示旧项目+添加新项目或显示除已删除项目之外的列表.我将在下面添加如何实现它.
AddMore在布局中有一个按钮,无论何时想要添加新项目,都可以这样做
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
arrayList.add("lemon"); // this adds item lemon to arraylist
arrayList.add("Pomgranete");
arrayAdapter.notifyDataSetChanged(); // this will refresh the listview and shows the newly added items too
}
});
Run Code Online (Sandbox Code Playgroud)
你可以通过传递arrayList中项目的位置来类似地删除项目,
arrayList.remove(arrayList.get(i)); // i is the position & note arrayList starts from 0
Run Code Online (Sandbox Code Playgroud)
所以,通过总结一切,这里是完整的工作代码:
public class MainActivity extends AppCompatActivity {
ListView listView;
String[] values = {"Apple", "Orange", "Banana"};
List<String> arrayList;
Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listView = (ListView)findViewById(R.id.listView);
button = (Button)findViewById(R.id.button);
arrayList = new ArrayList<String>();
Collections.addAll(arrayList,values); // here you're copying all items from String[] to ArrayList
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,arrayList);
listView.setAdapter(arrayAdapter);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
arrayList.remove(arrayList.get(2)); // here i remove banana since it's position is two. My ordering of items is different so it removed banana. If i use ordering from your quest, it will remove orange.
arrayList.add("lemon"); // adding lemon to list
arrayList.add("Pomgranete"); // adding pomgranete
arrayAdapter.notifyDataSetChanged(); // this used to refresh the listView
}
});
}
}
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
android:layout_height="match_parent" tools:context=".MainActivity">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="ADD MORE"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:id="@+id/button" />
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_above="@+id/button" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
输出:
列出预先定义的3个项目和一个按钮以加载更多项目.

列出旧3项+新增2项(这里我没有使用arrayList.remove)

列出旧项目除了已删除的项目+新添加的2项(这里我使用arrayList.remove删除香蕉arrayList.remove(arrayList.get(2));)

| 归档时间: |
|
| 查看次数: |
26738 次 |
| 最近记录: |