我有这个意图代码:
Intent arbeiten = new Intent(this, arbeiten.class);
startActivity(arbeiten);
但Eclipse告诉我:
The constructor Intent(new AdapterView.OnItemClickListener(){}, Class<arbeiten>) is undefined
其他(工作)同一项目中的意图,但其他类看起来像
Intent toolb = new Intent(this, ToolBox.class);
toolb.putExtra("json", json.toString());
startActivity(toolb);
他们正在努力......
“Arbeiten”-Class看起来像这样:
package XXX;
import android.app.Activity;
import android.os.Bundle;
public class arbeiten extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}
答案 0 :(得分:3)
这是因为this
引用了您的OnItemClickListener
。有不同的方法来解决这个问题。一种方法是引用活动的上下文,如下所示:
Context mContext;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//your code
mContext = this;
}
然后在OnClickListener
中,将其更改为:
Intent arbeiten = new Intent(mContext, arbeiten.class);
startActivity(arbeiten);
答案 1 :(得分:2)
从错误消息中,您似乎正在Intent
内创建OnClickListener
。要创建Intent
,您必须传递Context
。您可以使用以下方法实现此目的:
Intent arbeiten = new Intent(NameOfYourActivity.this, arbeiten.class);
startActivity(arbeiten);
(其中NameOfYourActivity
是外部类)
答案 2 :(得分:1)
这是因为你是在Listener中调用它,所以this
引用了监听器而不是'external'活动。试试:
Intent arbeiten = new Intent(YourClassName.this, arbeiten.class);
startActivity(arbeiten);
答案 3 :(得分:1)
试试这个:
startActivity(new Intent(getApplicationContext(), arbeiten.class))
答案 4 :(得分:0)
首先选择你的本地Object的一些不同的名字,除了arbeiten,并确保你正在调用正确的“this”,例如:
Intent intent = new Intent(YourCurrentActivity.this, arbeiten.class);
startActivity(intent);