意图不起作用

时间:2012-05-09 14:12:45

标签: java android eclipse

我有这个意图代码:

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);
    }
}

5 个答案:

答案 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);