在android中单击按钮打开新类/活动
如何单击按钮打开另一个活动?因此,现在我的应用程序有一个在android中单击按钮打开新类/活动,android,Android,如何单击按钮打开另一个活动?因此,现在我的应用程序有一个main窗口(运行应用程序时)。然后有一个带有一些按钮的菜单,当我点击一些按钮时,就会打开这个按钮的另一个活动。 因此,我有一个表单,用户必须输入其详细信息,但现在我想单击按钮continue,打开另一个活动,用户必须在其中输入更多信息。现在,单击此按钮时,信息进入数据库。 我知道如何在普通页面上添加更多的活动,比如main,在这里我只有按钮,但在这个页面上我真的不知道。这是密码 public class Reservation exten
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);
}
如何保留用户为下一个活动添加的信息,并在用户完成第二个活动后保存在数据库中?您可以使用
意图,然后使用该意图调用startActivity()
:
myBtn.setOnClickListener() {
public void onClick() {
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
}
}
解释得很好
编辑
要解决您在评论中提出的问题,在活动之间传递信息的最简单方法是使用以下附加功能:
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(NAME, VALUE);
startActivity(intent);
有多种类型的putExtra
来适应不同类型的值的传递
另一种存储信息的方法是使用
您还可以创建一个名为
存储
的公共
类,并将您的数据表示为该类的静态
成员(访问方式类似于存储.MY_data
)因此,它可以从应用程序中的任何点访问。我在我的main活动中使用它
,但是如果我在这里使用它,如何传递和存储我已经拥有的信息?我的意思是,如果我进行另一项活动,我会失去它?因此,如果我正确地理解你,我必须定义Name=editText1.getText().toString();。。和其他在public void onClick()
之外的某个地方以及onClick
事件中使用intent.putExtra(名称、值)代码>在多行中添加名称和值。@Goro Yessir。这是一种方法。好的,最后一个问题。你能告诉我在当前代码中我可以在哪里定义它们吗?好的,你现在的方式很好。您全局声明它们,然后在onClick
中获得它们的值。现在你可以把它们作为额外的,然后调用第二个活动。您定义它们的地方特定于您的编码风格以及应用程序访问这些资源的方式,您唯一需要做的就是在将它们作为附加值传递之前获取值,以确保它们存在,并且您不会最终传递null
值。