如何在开发eclipse的android应用程序中接受用户的值?

如何在开发eclipse的android应用程序中接受用户的值?,android,button,Android,Button,当用户与android应用程序交互时,在按下按钮之前,如何存储用户输入的值? 这是我们编写的代码。请告诉我们如何更正: public class configroom extends Activity { public String nroom; @override protected void onCreate (Bundle savedInstanceState) { super.onCreate(savedInstanceState);

当用户与android应用程序交互时,在按下按钮之前,如何存储用户输入的值? 这是我们编写的代码。请告诉我们如何更正:

public class configroom extends Activity {

    public String nroom;

    @override
    protected void onCreate (Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);

      setContentView(R.layout.activity_config_room);

      Button nextBtn = (Button) findViewById(R.id.nextbtn1);

      nextBtn.setOnClickListener(new View.OnClickListener(){

          @override

          public void onClick (View v) {

               getnumrooms(nroom);

               Intent i = new Intent (ConfigRoom.this, ConfigRoom2.class);

               i.putExtra("NumOfRooms",nroom);

               startActivityForResult(i,0);

          }
     });
    }

      void getnumrooms(String nroom) {

            EditText numberDisplay = (EditText) findViewById(R.id.numrm1);
            nroom = (numberDisplay.getText().toString());

      }

      @override
      public boolean onCreateOptionsMenu (Menu menu) {
            getMenuInflater().inflate(R.menu.activity_config_room1,menu);
            return true;
      }
  }

我不确定这是否是你们按下按钮之前的意思,但你们可以使用TextChangedListener

大致上是这样的:

EditText numberDisplay = (EditText) findViewById(R.id.numrm1);
numberDisplay.addTextChangedListener(new TextWatcher(){
     public void afterTextChanged(Editable s) {
           nroom = (s.getText().toString());
     }
     public void beforeTextChanged(CharSequence s, int start, int count, int after){}
     public void onTextChanged(CharSequence s, int start, int before, int count){}
}

在edittext上应用focuschange listner

txtEdit.setOnFocusChangeListener(new OnFocusChangeListener() {          

    public void onFocusChange(View v, boolean hasFocus) {
        if(!hasFocus)
           //do job here owhen Edittext lose focus 
    }
});
希望它能满足您的需求

在android中使用SharedReferences

public class configroom extends Activity {

public String nroom;
SharedPreferences sharedpreferences;

@override
protected void onCreate (Bundle savedInstanceState) {

  super.onCreate(savedInstanceState);

  setContentView(R.layout.activity_config_room);

  Button nextBtn = (Button) findViewById(R.id.nextbtn1);
  getnumrooms();
  nextBtn.setOnClickListener(new View.OnClickListener(){

      @override

      public void onClick (View v) {

           String nroom=sharedpreferences.getString("room",""); 

           Intent i = new Intent (ConfigRoom.this, ConfigRoom2.class);

           i.putExtra("NumOfRooms",nroom);

           startActivityForResult(i,0);

      }
 });
}

  void getnumrooms() {

        EditText numberDisplay = (EditText) findViewById(R.id.numrm1);
        nroom = (numberDisplay.getText().toString());
        sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
        Editor editor = sharedpreferences.edit();
   editor.putString("room", nroom);
   editor.commit();

  }

  @override
  public boolean onCreateOptionsMenu (Menu menu) {
        getMenuInflater().inflate(R.menu.activity_config_room1,menu);
        return true;
  }

}

以下是您的存储选项:调用函数getnumroomsnroom;在EditText组件失去焦点后。