2

我刚刚开始编码的Android,但我努力让我的头绕过列表视图。Android更复杂的ListView教程

例如,我需要了解如何在第一个列表视图中单击项目时显示另一个列表视图。另外我怎样才能在列表视图中点击某个项目时显示一个文本视图。

如果有人知道任何好的教程或例子,请让我知道。

非常感谢

+0

你需要告诉我们它应该看起来像... fx ..您可以使用ListView/TextView显示下一个Activity,或者您可以构建包含2个ListView的Layout,以及用户单击第一个第二个ListView显示列表(取决于第一个选择) – Selvin 2011-06-14 09:31:38

回答

7

下面为大家介绍一些链接正在寻找。先进的,但如果你坚持下去,不要放弃这一点,你会学到很多!请看:

Android: ListView elements with multiple clickable buttons

Android custom list item with nested widgets

+0

上面的链接对于访问和发布答案的所有人都非常酷。有很多东西需要学习,它会让你的眼睛更清晰地看到更多的潜力。我使用这些覆盖基本适配器的方法构建几乎所有列表,因为它创建了具有无限可能性的自定义UI。希望能帮助到你。 – trgraglia 2011-06-14 09:37:47

1

我不知道有什么好的教程,但是对于第一个问题你问:

“我需要了解我该怎么让另一个列表视图中的一个项目,当点击第一个列表视图“。

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

notifyDatasetChanged() 

刷新视图的适配器方法。

关于第二个问题“另外我怎样才能显示一个文本视图,当点击一个列表视图中的项目。”,这对我来说太模糊了。你想做什么 ?直接编辑列表项目,弹出一个包含编辑文本的对话框?

问候, 斯特凡

2

比如我需要了解一个项目时,点击我如何展示另一个列表视图>第一个列表视图。另外我怎样才能在列表视图中点击某个项目时显示一个文本视图。

在android和java中,您也可以使用listener来监听事件。在你的情况下,你需要知道用户何时点击一个项目,所以你需要一个onclicklistener,它会用另一个listview调用另一个activity。 对于点击 的文本视图,我想你想说的吐司,这是在屏幕底部的一种通知。

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

2

感谢所有的环节大家,非常有用!

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

这使我可以将几种不同的视图类型连接在一起。

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; 
        } 
       } 
     }); 
    } 
}