您好我有关于Android CheckBox的问题=)
我想要实现这一点,如果我按下我的重置按钮,TextView将清除其内容。 此TextView还将内容写入文件。
如果我勾选我的CheckBox然后按下按钮同样的事情发生但它也应删除文件中的内容或只删除文件。 - >消除旧会话的条目,否则将加载。
//global
CheckBox mCheckFileDelete;
//setupWidgets() which is called by onCreate()
mCheckFileDelete = (CheckBox)findViewById(R.id.cBdeleteFile);
//onClick (View view)
if (view.getId()==R.id.btn2reset && mCheckFileDelete.isChecked())
{
mMypoints.setText(null);
mErgebnis.setText(null);
setImage(5);
mNotenHistory.setText("");
//Delete File
File f = new File(getFilesDir(), FILENAME);
f.delete();
}
else
{
mMypoints.setText(null);
mErgebnis.setText(null);
setImage(5);
mNotenHistory.setText("0");
}
希望有人能给我一些提示。是否真的有必要设置一个单独的方法来处理整个isChecked()之类的东西,就像developer.android文章所示? 除此之外,我现在不知道如何在我的情况下实现这一点。
亲切的问候
//关于一个问题的编辑 MainActivity.onClick(查看视图)
Button berechne = (Button) findViewById(R.id.btn1calc);
Button reset = (Button) findViewById(R.id.btn2reset);
berechne.setOnClickListener(this);
reset.setOnClickListener(this);
@Override
public void onClick(View view)
{
if (view.getId()==R.id.btn1calc)
{
//int ka_counter = 1;
double mypoints = Double.valueOf(String.valueOf(mMypoints.getText()));
String spinner_maxpoints_string = mMaxPoints_spin.getSelectedItem().toString();
double spinner_maxToDouble = Double.valueOf(String.valueOf(spinner_maxpoints_string));
double note = (6-(5*(mypoints/spinner_maxToDouble)));
double note_rounded = Math.round(note*100)/100.0;
String string_note = String.valueOf(note_rounded);
mErgebnis.setText(string_note);
if (string_note == null)
{
setImage(0);
}
else
{
if(note_rounded >= 1.0 && note_rounded <= 1.4)
{
setImage(1);
}
else
{
if (note_rounded >= 1.5 && note_rounded <= 1.9 )
{
setImage(2);
}
else
{
if (note_rounded >= 2.0 && note_rounded <= 2.5)
{
setImage(3);
}
else
{
if (note_rounded >= 2.6 && note_rounded <= 3.2)
{
setImage(4);
}
else
{
if(note_rounded >= 3.3 && note_rounded <= 4.0)
{
setImage(5);
}
else
{
if(note_rounded >= 4.1 && note_rounded <= 4.9)
{
setImage(6);
}
else
{
if(note_rounded >= 5.0 && note_rounded <= 6.0)
{
setImage(7);
}
}
}
}
}
}
}
}
//ka_counter = ka_counter +1;
//mNotenHistory.setText("KA " + ka_counter +": " + string_note + "\n" + mNotenHistory.getText().toString());
mNotenHistory.setText(string_note + "\n" + mNotenHistory.getText().toString());
try {
FileOutputStream fo = openFileOutput(FILENAME, Context.MODE_APPEND);
fo.write(string_note.getBytes());
fo.write("\n".getBytes());
fo.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
if (view.getId()==R.id.btn2reset)
{
if(mCheckFileDelete.isChecked())
{
mMypoints.setText(null);
mErgebnis.setText(null);
setImage(0);
mNotenHistory.setText("");
//Delete File
File f = new File(getFilesDir(), FILENAME);
f.delete();
}
else
{
mMypoints.setText(null);
mErgebnis.setText(null);
setImage(0);
mNotenHistory.setText("0");
}
}
}
答案 0 :(得分:0)
在onClick事件中检查复选框的状态,然后根据它编写逻辑。它应该是这样的:
//onClick (View view)
if (view.getId()==R.id.btn2reset){
if(mCheckFileDelete.isChecked()){
mMypoints.setText(null);
mErgebnis.setText(null);
setImage(5);
mNotenHistory.setText("");
//Delete File
File f = new File(getFilesDir(), FILENAME);
f.delete();
}
else{
mMypoints.setText(null);
mErgebnis.setText(null);
setImage(5);
mNotenHistory.setText("0");
}
}