我正在写一个简单的测试应用程序.应用程序中有两个单选按钮.id是"radio_red"和"radio_blue".我想创建一个onClickListener事件,该事件读取与按钮关联的文本,然后返回基本的"右"或"错误"吐司.
以下是代码示例:
private OnClickListener radio_listener = new OnClickListener() {
public void onClick(View v){
RadioButton rb = (RadioButton) v;
String ans = rb.getText().toString();
String an1 = "";
if (ans.trim() == "Yes") {
ans = "That's Right.";
}
else if (ans.trim() == "No") {
ans = "thats wrong.";
}
else {
ans = "none.";
}
Toast.makeText(v.getContext(), ans , Toast.LENGTH_SHORT).show();
}
Run Code Online (Sandbox Code Playgroud)
到目前为止没有快乐.这是我的代码片段.我已经检查了我的"main.xml",并且正确地引用了与按钮相关联的文本.我添加了修剪来确保这一点.然而,在吐司中返回的所有内容都是"无".我错过了什么?在此先感谢您的帮助.
这个问题可能揭示了我在Java中完全缺乏知识.但是,让我首先向您展示我认为是宣布"成员字段"的正确方法:
public class NoteEdit extends Activity {
private Object mTitleText;
private Object mBodyText;
Run Code Online (Sandbox Code Playgroud)
我正在关注Android的谷歌笔记本教程(这里),他们只是说:"请注意,mTitleText和mBodyText是成员字段(你需要在类定义的顶部声明它们)." 我以为我得到了它,然后意识到这一小段代码不起作用.
if (title != null) {
mTitleText.setText(title);
}
if (body != null) {
mBodyText.setText(body);
}
Run Code Online (Sandbox Code Playgroud)
所以要么我没有正确设置"成员字段",我认为所需要的只是将它们声明为NoteEdit类顶部的私有对象,否则我会遗漏其他内容.在此先感谢您的帮助.
UPDATE
我被要求显示这些字段在哪里被初始化是另一个代码片段希望它有用...
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.note_edit);
Long mRowId;
mTitleText = (EditText) findViewById(R.id.title);
mBodyText = (EditText) findViewById(R.id.body);
Run Code Online (Sandbox Code Playgroud)
所以基本上出现的错误来自eclipse:"方法setText(String)未定义类型Object"