自动更新我的活动以显示写入的内容

时间:2013-05-15 13:41:08

标签: android

就像你在这里看到的那样,用户必须提供一张SIM卡号码,当提供这个号码时,我想自己填写内容,自己添加提供的SIM卡号码。 我认为我必须自动更新(自动更新?)活动或类似的东西。如果有人可以通过编辑我所做的事情或通过展示示例来帮助我,那将非常有帮助! 非常感谢你

我的申请图片在这里:http://imageshack.us/a/img199/1561/12216127.png

我的代码在这里:

    public class RegulationTime extends Activity {

   @Override
   protected void onCreate(Bundle savedInstanceState) {

       EditText edit2;

       super.onCreate(savedInstanceState);
       setContentView(R.layout.regulation_time);
       // Show the Up button in the action bar.
       setupActionBar();

       //Récupérer le n° de la carte SIM saisi par l'utilisateur
       EditText edit1 = (EditText) findViewById(R.id.regedit1);
       String simCard = edit1.getText().toString();

       //Récupérer le n° du destinataire & le saisir automatiquement dans l'EditText
       String recoverRN = MasterNumber.getDefaults("mehmet", RegulationTime.this);
       edit2 = (EditText) findViewById(R.id.regedit2);
       edit2.setText(recoverRN);

       //On rentre automatiquement le texte "#152#SIMCardNumber#" à la place de l'utilisateur
       EditText edit3 = (EditText) findViewById(R.id.regedit3);
       String concatenation;
       if(simCard.length()>0)
       {
           concatenation = "#152#" + simCard + "#";
           edit3.setText(concatenation);
       }
   }

}

1 个答案:

答案 0 :(得分:3)

你想要的是TextWatcher。使用onTextChanged(),以便当用户在“Sim卡”框中键入时,“内容”框将填满。请将TextWatcher附加到您的第一个EditText

edit1.addTextChangedListener(new TempWatcher());

并为TextWatcher

创建内部类
private class TempWatcher implements TextWatcher {

    @Override
    public void afterTextChanged(Editable s) {
    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count, int after) {
    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) 
    {   
         if (s.length() > 0) 
         {
             String sim = s.toString();
             edit2.setText(sim);
         }

    }

您可能希望制作EditText成员变量,然后在onCreate()之前声明它们,然后像​​onCreate()一样初始化它们。这应该让你开始。我写得很快,所以你可能需要调整变量名称,如果需要的话进行错误检查等等。如果有帮助,请告诉我

修改

public class RegulationTime extends Activity {

  EditText edit1, edit2;   // declare them here so they are member variables

 @Override
   protected void onCreate(Bundle savedInstanceState) {


   super.onCreate(savedInstanceState);
   setContentView(R.layout.regulation_time);
   // Show the Up button in the action bar.
   setupActionBar();

   //Récupérer le n° de la carte SIM saisi par l'utilisateur
   edit1 = (EditText) findViewById(R.id.regedit1);   // initialize here
   String simCard = edit1.getText().toString();

   //Récupérer le n° du destinataire & le saisir automatiquement dans l'EditText
   String recoverRN = MasterNumber.getDefaults("mehmet", RegulationTime.this);
   edit2 = (EditText) findViewById(R.id.regedit2);   // initialize here
   edit2.setText(recoverRN);