此代码不会返回单词。似乎它跳过了" Word ="行。ET确实连接到正确的编辑文本框。我们使用调试进行运行,然后直接进入" try"行,而无需给出词的值。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_word);
mydb = new DBHelper(this);
et = (EditText) findViewById(R.id.nw);
word = et.getText().toString();
Toast.makeText(getApplicationContext(),word,Toast.LENGTH_LONG).show();
l = (Button) findViewById(R.id.ad);
l.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {mydb.insertWord(word);}
catch(Exception e){
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
et.setText("");
}
});
b = (Button) findViewById(R.id.back);
b.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {Intent i = new Intent(AddWord.this, MainActivity.class);
startActivity(i);
}
});
}
转换:
l.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {mydb.insertWord(word);}
catch(Exception e){
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
et.setText("");
}
to:
l.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
try {mydb.insertWord(et.getText().toString());}
catch(Exception e){
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_SHORT).show();
}
et.setText("");
}
并删除此:
word = et.getText().toString();
这是因为您在活动开始时将编辑文本的值设置为单词。请记住,在活动开始时,编辑文本为空,因此该单词将具有空字符串。因此,为了在尝试块中获取当前值,您应该再次从编辑文本获取最新值。您可以像这样更改尝试块,
try {
word = et.getText().toString();
mydb.insertWord(word);
}
catch(Exception e){
Toast.makeText(getApplicationContext(),e.toString(),Toast.LENGTH_SHORT).show();
}