【问题标题】:onItemClick, Intent, startActivity errorsonItemClick、Intent、startActivity 错误
【发布时间】:2011-05-16 11:37:08
【问题描述】:

我的代码:

package elf.app;
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;
import android.widget.ListView;
import elf.app.entity.ELFList;
import elf.app.entity.Entry;
import elf.app.test.FakeComm;

// TODO Kunna skicka att något är färdigt (ett rum är städat).

public class RoomListActivity extends ListActivity {
private ELFList eList;
//  private FakeComm fakecomm;
private Bundle extras;

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.extras = getIntent().getExtras();
    eList = new ELFList();

//      fakecomm = new FakeComm();
//      eList.add(fakecomm.getData());

    String[] strArr = {"asd","sdf","dfg"};
    eList.add(strArr);

    String[] str = eList.returnNames();


    setListAdapter(new ArrayAdapter<String>(this, R.layout.list_item, str));

    ListView lv = getListView();
    lv.setTextFilterEnabled(true);

    lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            Entry e = eList.getEntry(position);
            String roominfo = e.toString();


            Intent intent = new Intent(this, RoomInfoActivity.class);
            intent.putExtra("entry",roominfo);
            this.startActivity(intent);

                // old stuff
            // String message;
            // message = eList.getEntryInfo(position);
            // Toast.makeText(getApplicationContext(),
            // message, Toast.LENGTH_SHORT).show();
        }
    });
}

}

我在以下几行遇到错误:

Intent intent = new Intent(this, RoomInfoActivity.class);

this.startActivity(intent);

我不知道为什么会出现这些错误,编辑器中这些错误的确切输出是:

  • “构造函数 Intent(new AdapterView.OnItemClickListener(){}, Class ) 未定义”
  • “新AdapterView.OnItemClickListener(){}类型的startActivity(Intent)方法未定义”

我是 Android 新手,所以请考虑到这一点,但我已经学习 Java 大约一年了。

【问题讨论】:

    标签: java android


    【解决方案1】:

    修复

    Intent intent = new Intent(this, RoomInfoActivity.class);
    

    Intent intent = new Intent(RoomListActivity.this, RoomInfoActivity.class);
    

    错误是因为 this 你引用了 OnClickListener。如果您参考 Activity 的this,问题已解决。第二个错误是相同的 - 错误的参考。只要去掉this,startActivity()方法也会在封闭类中被搜索到。

    【讨论】:

    • 谢谢,错误消失了。并感谢弗拉基米尔的解释!
    • 如果有帮助,请尝试投票并接受答案。点击答案左侧的勾号。
    【解决方案2】:

    试试这个

    Intent intent = new Intent(RoomListActivity.this, RoomInfoActivity.class);
    intent.putExtra("entry",roominfo);
    RoomListActivity.this.startActivity(intent);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-09
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多