【问题标题】:How to call different intents from each listview item in android?如何从android中的每个listview项目调用不同的意图?
【发布时间】:2011-12-17 09:32:49
【问题描述】:

我正在开发安卓应用程序。在我的项目中,我需要创建 Listview。我的布局,即 info.xml 包含带有一个图像视图的顶栏,带有其他图像视图的页脚。同样在布局的中心,我保留了一个 imageview,并在其上创建了 Listview。我还为 textview 创建了 row.xml 以显示列表项。现在,当我单击每个列表项时,应该调用一个新意图……即,当我单击第一个列表项时,page1 应该打开。同样,如果我单击第二个列表项 page2 应该打开,依此类推。那我怎么能这样做。自 3 天以来,我一直为此苦苦挣扎,但没有找到任何正确的解决方案。请告诉我这件事。

我的代码:

public class Information extends Activity 
{
private String[] Countries;

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.information);
Countries = getResources().getStringArray(R.array.countries);
ListView list = (ListView)findViewById(R.id.listnew);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.row, Countries);
list.setAdapter(adapter);
registerForContextMenu(list);  }
} 

【问题讨论】:

  • 只需将 switch case 放入 listView.onItemclick() 并在列表项位置做任何你想做的事情。

标签: android


【解决方案1】:

所有你需要添加的是

list.setOnItemClickListener(this);

然后让你的类实现 OnItemClickListener 接口并创建这个方法:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    switch(position){
        case 0:
            Intent firstIntent = new Intent(this, MyClass.class);
            startActivity(firstIntentIntent);
            break;  
        case 1:
            Intent secondIntent = new Intent(this, MySecondClass.class);
            startActivity(secondIntentIntent);
                    break;

            [... etc ...]

   }    

}

在这种情况下,如果单击第一个项目,它将启动 MyClass Activity,如果单击第二个项目,将启动 MySecondClass Activity,等等。

是的,这有点乏味,但这是最好的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-17
    • 1970-01-01
    • 1970-01-01
    • 2014-01-22
    相关资源
    最近更新 更多