如何在按钮点击时打开另一个活动?所以现在我的应用程序有一个main
窗口(当你运行应用程序时)。然后有一个菜单显示一些按钮,当我点击某个按钮时,打开该按钮的另一个活动。
所以我有一个表单,用户必须输入他的详细信息,但现在我想点击按钮continue
并打开另一个活动,他必须输入更多信息。现在,当单击此按钮时,信息将进入数据库。
我知道如何在main
这样的普通页面上添加更多活动,我只有按钮,但在这个页面上我并不知道。这是代码
public class Reservation extends Activity {
String Name;
String Email;
String Phone;
String Comment;
String DateTime;
String numberOfPeople;
private EditText editText1, editText3, editText2, editText4, txtDate, numberOfPeoples; //, txtTime;
private Button btnMenues, btnCalendar, btnTimePicker;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.reservation);
editText1 = (EditText) findViewById(R.id.personName);
editText3 = (EditText) findViewById(R.id.personPhone);
editText2 = (EditText) findViewById(R.id.personEmail);
editText4 = (EditText) findViewById(R.id.personComment);
txtDate = (EditText) findViewById(R.id.datePicker);
numberOfPeoples = (EditText) findViewById(R.id.numberOfPeoples);
btnCalendar = (Button) findViewById(R.id.btnCalendar);
//btnTimePicker = (Button) findViewById(R.id.btnTimePicker);
btnMenues = (Button) findViewById(R.id.continueWithReservation);
btnMenues.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(Reservation.this, ReservationSecond.class);
intent.putExtra(Name, Name.getBytes().toString());
intent.putExtra(Email, Email.getBytes().toString());
intent.putExtra(Phone, Phone.getBytes().toString());
intent.putExtra(Comment, Comment.getBytes().toString());
intent.putExtra(DateTime, DateTime.getBytes().toString());
intent.putExtra(numberOfPeople, numberOfPeople.getBytes().toString());
startActivity(intent);
}
});
}
那么我可以将setOnClickListener
放进去进行下一个活动?
更新: 如果我改变了这个
public void onClick(View v) {
Name = editText1.getText().toString();
Phone = editText3.getText().toString();
Email = editText2.getText().toString();
Comment = editText4.getText().toString();
DateTime = txtDate.getText().toString();
numberOfPeople = numberOfPeoples.getText().toString();
new SummaryAsyncTask().execute((Void) null);
}
到这个
public void onClick(View v) {
Intent intent = new Intent(MainActivity.this, Contacts.class);
startActivity(intent);
}
如何保留到目前为止为下次活动添加用户的信息,并在完成第二次活动后保存在数据库中?
答案 0 :(得分:1)
您可以使用Intent
,然后使用startActivity()
致电Intent
:
myBtn.setOnClickListener() {
public void onClick() {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
}
Android Docs给出了一个很好的解释
修改强>
要解决您在评论中提出的问题,在Activities
之间传递信息的最简单方法是使用以下内容:
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(NAME, VALUE);
startActivity(intent);
有multiple versions putExtra
来容纳传递不同类型的值
另一种存储信息的方法是使用SharedPreferences
。 Here is a simple example
您还可以创建一个名为public
的{{1}}类,并将您的数据表示为此类的Storage
成员(访问方式为static
})因此可以从应用程序的任何位置访问它。