Android 更复杂的 ListView 教程 [关闭]

Posted

技术标签:

【中文标题】Android 更复杂的 ListView 教程 [关闭]【英文标题】:Android more complex ListView tutorial [closed] 【发布时间】:2011-09-14 13:21:06 【问题描述】:

我刚刚开始为 android 编写代码,但正在努力理解列表视图。

例如,我需要了解如何在单击第一个列表视图中的项目时显示另一个列表视图。还有如何在单击列表视图中的项目时显示文本视图。

如果有人知道任何好的教程或示例,请告诉我。

非常感谢

【问题讨论】:

你需要告诉我们它应该是什么样子... fx .. 你可以用 ListView/TextView 显示下一个 Activity 或者你可以构建包含 2 个 ListViews 的布局并在用户点击第一个之后第二个 ListView 显示列表,取决于第一个选择 【参考方案1】:

这里有一些您正在寻找的链接。高级,但如果你坚持下去并且不放弃这一点,你会学到很多!看看:

Android: ListView elements with multiple clickable buttons

Android custom list item with nested widgets

【讨论】:

上面的链接对于每个访问和发布答案的人来说真的很酷。有很多东西要学,它会让你看到列表视图的更多潜力。我用这些覆盖基本适配器的方法构建了几乎每个列表,因为它创建了一个具有无限可能性的自定义 UI。希望对您有所帮助。【参考方案2】:

例如,我需要了解如何在单击第一个列表视图中的项目时显示另一个列表视图。还有如何在单击列表视图中的项目时显示文本视图。

在 android 和 java 中,你也可以使用 listener 来监听事件。在您的情况下,您想知道用户何时单击某个项目,因此您需要一个 onclicklistener 它将使用另一个列表视图调用另一个活动。 单击时的文本视图 我想你想说 Toast,它是屏幕底部的一种通知。

一个很好的例子的链接:http://developer.android.com/guide/topics/ui/ui-events.html

【讨论】:

【参考方案3】:

感谢大家提供的所有链接,非常有用!

我已经解决了我需要做的事情,它可能非常粗糙和低效,但至少在我了解更多之前它会起作用。

这允许我将几种不同的视图类型链接在一起。

package com.android.AndroidViews;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;

public class AndroidViews extends ListActivity 
    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setListAdapter(ArrayAdapter.createFromResource(getApplicationContext(),
                R.array.list_titles, R.layout.list_item));

        getListView().setOnItemClickListener(new OnItemClickListener() 
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                      int position, long id) 
                    switch( position )
                    
                       case 0:  Intent newActivity = new Intent(AndroidViews.this,LinearView.class);
                                startActivity(newActivity);
                                break;
                       case 1:  Intent newActivity1 = new Intent(AndroidViews.this,List2.class);
                                startActivity(newActivity1);
                                break;
                    
                
        );
    

【讨论】:

【参考方案4】:

除了你问的第一个问题,我不知道有什么好的教程:

“我需要了解如何在单击第一个列表视图中的项目时显示另一个列表视图。”

我假设您想在同一个活动中保留相同的列表视图。所以只需更改列表视图的适配器。如果它是基于光标的,请不要忘记管理光标。切换到新适配器后,调用

notifyDatasetChanged() 

适配器刷新视图的方法。

关于第二个问题“还有如何在单击列表视图中的项目时显示文本视图。”,这对我来说太模糊了。你想做什么 ?直接就地编辑列表项,弹出带有编辑文本的对话框?

问候, 斯蒂芬

【讨论】:

以上是关于Android 更复杂的 ListView 教程 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

Android XML解析listview

如何提高(感知)使用 Android 创建复杂 ListView 的速度?

Android使用BaseAdapter实现复杂的ListView

翻译Android RecyclerView CardView

android ——ListView

ListView布局之View复用原理举例