在android中点击按钮打开新的类/活动

时间:2014-11-03 18:36:02

标签: android

如何在按钮点击时打开另一个活动?所以现在我的应用程序有一个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);

    }

如何保留到目前为止为下次活动添加用户的信息,并在完成第二次活动后保存在数据库中?

1 个答案:

答案 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来容纳传递不同类型的值

另一种存储信息的方法是使用SharedPreferencesHere is a simple example

您还可以创建一个名为public的{​​{1}}类,并将您的数据表示为此类的Storage成员(访问方式为static })因此可以从应用程序的任何位置访问它。