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);
}
}
我的意图是显示几个错误,我无法弄清楚接下来该做什么。
答案 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);
(还有其他选择)
:)希望这有帮助!