如何在Android上点击启动新活动?

时间:2014-03-07 14:37:43

标签: android onclick

public void onClick(View view) {
    TextView snt = (TextView)
            view.findViewById(R.id.shape_name_text);
    String Selected = snt.getText().toString();
    String triangle = getResources().getString(R.string.triangle);
    if (Selected.equals(triangle)) {


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

}

我的意图是显示几个错误,我无法弄清楚接下来该做什么。

3 个答案:

答案 0 :(得分:1)

列出错误会有所帮助,但这里至少有两个:

这一行

TextView snt = (TextView) view.findViewById(R.id.shape_name_text);

告诉它要查看View点击的Button(可能是TextView),显然不存在shape_name_text。假设layout as your位于同一just remove按钮TextView snt = (TextView) findViewById(R.id.shape_name_text); 视图

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

第二个问题就在这一行

this
如果您在内班,

Listener会引用Intent intent = new Intent(v.getContext(), TriCalculator.class); 。将其更改为

OnClickListener

修改

正如评论中指出的黑带一样,答案的第一部分假设您已将View附加到ViewGroup,而不是View,其中包含Intent你正在尝试初始化。

另一个编辑

似乎(通过删除的评论)未添加正确的import android.content.Intent; 导入

{{1}}

答案 1 :(得分:0)

使用此:

findViewById(R.id.shape_name_text);  

删除视图。

答案 2 :(得分:0)

public void onClick(View view) {
TextView snt = (TextView)
        view.findViewById(R.id.shape_name_text);
String Selected = snt.getText().toString();
String triangle = getResources().getString(R.string.triangle);
if (Selected.equals(triangle)) {


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

在上面发布的代码中,您通过将this作为新Intent的参数传递,实际上告诉操作系统您要调用另一个OnClickListener。为了使其工作,您需要将其更改为:

Intent intent = new Intent(MainActivity.this, TriCalculator.class);

Intent intent = new Intent(getAppplicationContext(), TriCalculator.class);

(还有其他选择)

:)希望这有帮助!