0

您好,我确实对 Android CheckBox 有疑问 =)

我确实想做到这一点,如果我按下重置按钮,TextView 将清除其内容。此 TextView 还将内容写入文件。

如果我勾选我的复选框然后按下按钮,同样的事情会发生,但它也应该从文件中删除内容或只是删除文件。-> 消除将加载的旧会话条目。

//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(View view)

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");
           }
        }
    }
4

1 回答 1

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");
    }
}
于 2013-07-02T20:40:11.293 回答