java - 转换到一组新的 ListView 项目?

标签 java android listview

例如,我有几个字符串数组,并且我已经设置了一个列表适配器:

String[] initial = new String[] {
        "Geometry",
        "Algebra",
        "Differentation Calculus",
        "Integral Calculus",
        "Trigonometry",
        "Algebra II",
        "Triangle",
        "Rectange"
};
String [] triangle = new String[] {
        "Area",
        "Perimeter"
};

String[] rectangle = new String[] {
        "Area",
        "Perimeter"
};

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

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, initial);
    setListAdapter(adapter);
}

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
    ...
}

我的 onListItemClick(ListView, View, int, long) 方法中应该有什么,可以让我加载一组不同的列表项,而无需创建新的 Activity 。

最佳答案

如果您这样做,您将始终更改适配器数据集,我不知道这是否是最佳选择。我有一个类似的用例,即当我在初始 String[] 中选择“三角形”时,我显示 ExpandableListView与初始“三角形”数据集的子项...

以另一种方式,我认为你可以这样做......(我没有测试过这个)

@Override
protected void onListItemClick(ListView l, View v, int position, long id) {

     if(adapter.getItem(position).equals("Triangle")){
         adapter.clear();
         for(String item : triangle){
            adapter.add(item);
         }
         adapter.notifyDataSetChanged();
     }else if(...)
}

关于java - 转换到一组新的 ListView 项目?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4502868/

相关文章:

java - java方法中的字符串索引超出范围错误

android - 如何打开具有特定设置的 URL?

原生文件的 Android 权限

java - 没有 createQuery() 的 Hibernate 连接

java - 如何在 Java 中使用内部类实例化递归绑定(bind)泛型?

java - android error org.json.JSONException : Value &lt;! java.lang.String类型的DOCTYPE无法转换为JSONObject

android - 如何创建类似画廊的 View

android - 在我的 ListView 中获取子项

android - 自动更改ListView的背景图片

android - ListView 中的 setOnItemClickListener 影响多行