从列表视图中启动活动

时间:2010-09-24 13:29:19

标签: java android eclipse

  

可能重复:
  Start an activity from a listview

我在列表中有24个团队,每个团队有24个单独的.java类,其中包含有关这些团队的信息。当用户点击列表中的项目(团队)时,我想转到那些团队的java文件(Class)并显示那里的信息。下面是代码,

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ll2 extends Activity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        String[] myList = new String[] {"Accrington Stanley", "Aldershot Town", "Barnet", "Bradford City", "Burton Albion", "Bury", "Cheltenham Town", "Chesterfield", "Crewe A", "Gillingham", "Hereford Utd", "Lincoln City", "Macclesfield T", "Morecombe", "Northampton T", "Oxford Utd", "Port Vale", "Rotherham Utd", "Shrewsbury T", "Southend Utd", "Stevenage", "Stockport C", "Torquay Utd", "Wycombe W"};              
        ListView lv = new ListView(this);
        lv.setAdapter(new ArrayAdapter(this,android.R.layout.simple_list_item_1,myList));
        setContentView(lv);
    }

    public void onItemClick(AdapterView parent, View view,int position, long id) {
       Intent myList = new Intent();
        myList.setClass(this, Bradford.class);

        if ("Bradford City".equals(myList))
            startActivity(Bradford.java);
    }
}

正如你所看到我已经设置了Bradford类,我已经在android清单中注册了这个,但是当我点击bradford时没有任何反应,当我尝试为另一个团队设置另一个意图时,mylist值不能再次使用。

如何使这项工作

1 个答案:

答案 0 :(得分:1)

您正在尝试将意图与String进行比较,但您需要比较来自Listview的String。 试试这种方式:

public void onItemClick(AdapterView parent, View view,int position, long id) {
     if(((TextView)view).getText().equals("Bradford City"))
     {
        startActivity(new Intent(getApplicationContext(), Bradford.class));
     }
}

虽然这可能会有效,但对24个课程来说这样做效率很低。 也许您可以尝试使用“position”参数创建一个Switch / Case,或者甚至为每个团队类添加一个属性,然后允许您创建一个团队数组并在Intent上调用正确的类(我是抱歉,如果这听起来令人困惑,那就有点难以解释了。)

希望它有所帮助!

相关问题