0

就像你在这里看到的那样,用户必须提供一个 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);
       }
   }

}
4

1 回答 1

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的 s 成员变量在之前声明它们,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);
于 2013-05-15T13:59:57.527 回答