【问题标题】:listview startactivty on click item点击项目上的listview startactivty
【发布时间】:2015-04-30 03:16:25
【问题描述】:

当用户单击listview 中的项目时,我正在尝试启动一项活动。在下面的适配器中,我在intent 和 onClick 中遇到问题。什么可能导致失败? 好的更新代码后缺少 }};}} 字符,如编辑我的代码和

我的代码 返回行视图;

listView.setOnItemClickListener(new OnItemClickListener() {
      @Override
      public void onItemClick(AdapterView<?> parent, View view,
        int position, long id) {
       int itemPosition     = position;
       String  itemValue= (String)listView.getItemAtPosition(position);
if (itemValue.equals("1")){
Intent intent = new Intent(context, Spain.class);
context.startActivity(intent);}
else if (itemValue.equals("2")) {
Intent intent = new Intent(context, As.class);
context.startActivity(intent);}
else if(itemValue.equals("3")){
Intent intent = new Intent(context, Ma.class);
context.startActivity(intent);}
else if(itemValue.equals("4")) {
Intent intent = new Intent(context, Me.class);
context.startActivity(intent);}
else if (itemValue.equals("5")){ 
Intent intent = new Intent(context, Gr.class);
context.startActivity(intent);}
 else if(itemValue.equals("6")) {
Intent intent = new Intent(context, Th.class);
context.startActivity(intent);}
else if(itemValue.equals("7")) {  
Intent intent = new Intent(context, Ukr.class);
context.startActivity(intent);}
else if (itemValue.equals("8")){
Intent intent = new Intent(context, Po.class);
context.startActivity(intent);}
else if (itemValue.equals("9")) { 
Intent intent = new Intent(context, France.class);
context.startActivity(intent);}
else if (itemValue.equals("10")){
Intent intent = new Intent(context, UK.class);
context.startActivity(intent);}
else if (itemValue.equals("11")) { 
Intent intent = new Intent(context, Ksa.class);
context.startActivity(intent);}
else if (itemValue.equals("12"))  {
Intent intent = new Intent(context, Ger.class);
context.startActivity(intent);}
else if (itemValue.equals("13"))  {
Intent intent = new Intent(context, Canda.class);
context.startActivity(intent);}
else if (itemValue.equals("14")){
Intent intent = new Intent(context, Turkey.class);
context.startActivity(intent);}
else if (itemValue.equals("15"))    {
Intent intent = new Intent(context, Italy.class);
context.startActivity(intent);}
else if (itemValue.equals("16")) {
Intent intent = new Intent(context, Russia.class);
context.startActivity(intent);}
else if (itemValue.equals("17")) {
Intent intent = new Intent(context, China.class);
context.startActivity(intent);}
else if (itemValue.equals("18")) {
Intent intent = new Intent(context, Usa.class);
context.startActivity(intent);}
      })};}

【问题讨论】:

  • “我有问题” - 你有什么问题?
  • 选择列表项时出现任何错误?

标签: android listview android-intent


【解决方案1】:

您的代码中存在一些问题

  1. 适配器中不需要有列表视图的实例,并且列表视图未初始化,这将导致空指针异常
  2. String itemValue= (String) listView.getItemAtPosition(position); 这一行中,您试图从列表视图中获取一个未初始化的项目,并且您没有使用您在适配器中初始化的值理想情况下,该行应如下所示

    String itemValue=values[position]

  3. 在您的 OnItemClickListener 中,if 和 else 部分的代码执行相同的工作,您应该使用 context 而不是 this

【讨论】:

  • 所以您的意见是使用上下文删除它并将字符串 itemvalue 更改为列表视图活动中的值位置
  • 是的..并且还从适配器中删除列表视图引用,最好将您的 onItemclickListener 移动到包含列表视图的片段
【解决方案2】:

更改您的代码

Intent intent = new Intent(this, Ksa.class);
startActivity(intent);

Intent intent = new Intent(context, Ksa.class);
context.startActivity(intent);

为什么在你的适配器类中声明一个列表视图并调用onItemClickListener 方法?你也没有初始化你的 listView。

注意:当您单击适配器类中的项目时,此代码将起作用。

【讨论】:

  • 好吧,我试过了,但现在我得到这个错误,方法 startactivty(intent) 是未定义的
  • 好的,现在我的代码缺少像 };} 这样的字符)请问里面缺少什么
  • 检查代码请更新后我的代码
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-04-12
  • 2012-06-06
相关资源
最近更新 更多