Диалог времени / даты. пытаюсь добавить кнопку. Затмение Android

1

Таким образом, я сделал Activity с textViews, editTexts, диалоговое окно даты и выбор времени. плюс кнопка.

Я использовал это для получения диалогов даты/времени:

Открытый класс RainbowBookActivity расширяет действие {

private static final int DATE_DIALOG_ID=1; // for date 
  private static final  int TIME_DIALOG_ID=2; // for month 
  private int d,mo,y,h,m; // for date & month variables 
  Button b1,b2; // button objects 
  TextView e1,e2;  // textview objects

  // execution starts from here 
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_rainbowbook);  // calling activity_rainbowbook.xml 
     e1=(TextView)findViewById(R.id.textview1); // getting textview1 id from activity_rainbowbook.xml 
     b1=(Button)findViewById(R.id.button1); // getting  button id from activity_rainbowbook.xml

   b1.setOnClickListener(new OnClickListener() // setting listener for button one  

   {

   public void onClick(View arg0) {


    // TODO Auto-generated method stub
    showDialog(DATE_DIALOG_ID);   // generating dialog box 
     }
  });

  final Calendar cal=Calendar.getInstance(); // allocating memory for calendar instance
   d=cal.get(Calendar.DAY_OF_MONTH); // present date        
  mo=cal.get(Calendar.MONTH); // present month
     y=cal.get(Calendar.YEAR); // present year
     updateDate();  // update date 

  b2=(Button)findViewById(R.id.button2); // getting listener for button2 
   e2=(TextView)findViewById(R.id.textview2); 
   b2.setOnClickListener(new OnClickListener() // setting listener for button2 

   {
    public void onClick(View arg0) {


    // TODO Auto-generated method stub
    showDialog(TIME_DIALOG_ID);
 }
});

  h=Calendar.getInstance().get(Calendar.HOUR); // getting  present hour & minute
  m=Calendar.getInstance().get(Calendar.MINUTE);
  updateTime();  // updating time 
}


public void updateTime()
{

   e2.setText(new StringBuilder().append(h).append(':').append(m));

}
public void updateDate()
{

   e1.setText(new StringBuilder().append(d).append('/').append(mo+1).append('/').append(y));

  }


private DatePickerDialog.OnDateSetListener datelistener=new DatePickerDialog.OnDateSetListener() 
{


   public void onDateSet(DatePicker view,int year, int monthofyear, int day) 
   {

                     y=year;
                     mo=monthofyear;
                     d=day;
                     updateDate();
  }
 };

  private TimePickerDialog.OnTimeSetListener timelistener=new TimePickerDialog.OnTimeSetListener() 
  {
   public void onTimeSet(TimePicker view, int hourofday, int minute) 
   {
    // TODO Auto-generated method stub
    h=hourofday;
    m=minute;
     updateTime();
   }
 };

 protected Dialog onCreateDialog(int id) 
 {
    switch(id)
    {
      case DATE_DIALOG_ID:
                   return new DatePickerDialog(this,datelistener , y, mo, d);


      case TIME_DIALOG_ID:
                  return new TimePickerDialog(this,timelistener,h,m,false);
  }
  return null;
}


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

}

Теперь я хотел бы как это сделать, чтобы у меня была кнопка, которая передает информацию из editTexts:

    EditText inputName;
    EditText inputRoom;

    public void onCreate1(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_rainbowbook);

        inputName = (EditText) findViewById(R.id.editText1);
        inputRoom = (EditText) findViewById(R.id.editText2);
        Button btnNextScreen = (Button) findViewById(R.id.button3);

        //Listening to button event
        btnNextScreen.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Starting a new Intent
                Intent nextScreen = new Intent(getApplicationContext(), BookingsActivity.class);

                //Sending data to another Activity
                nextScreen.putExtra("name", inputName.getText().toString());
                nextScreen.putExtra("room", inputRoom.getText().toString());

                Log.e("n", inputName.getText()+"."+ inputRoom.getText());

                startActivity(nextScreen);

            }
        });
    }

Кажется, я не могу понять это, и надеюсь, что кто-то может мне помочь. Благодарю.

* Бронирование:

public class BookingsActivity расширяет действие {

   @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_bookings);

        TextView Name = (TextView) findViewById(R.id.textView2);
        TextView Room = (TextView) findViewById(R.id.textView3);
        Button btnClose = (Button) findViewById(R.id.btnClose);

        Intent i = getIntent();
        // Receiving the Data
        String name = i.getStringExtra("name");
        String room = i.getStringExtra("room");
        Log.e("Bookings", name + "." + room);

        // Displaying Received data
        Name.setText(name);
        Room.setText(room);

        // Binding Click event to Button
        btnClose.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {
                //Closing SecondScreen Activity
                finish();
            }
        });

    }

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

}

  • 0
    в чем проблема снова? о, inputName и inputRoom должны быть объявлены как final, чтобы это работало, иначе вы получите compaints из eclipse. это было?
  • 0
    Правильно. Пожалуйста, дайте проблему, чтобы мы могли ее решить. Если вы не можете скомпилировать, сообщите об ошибке. Если это приводит к сбою ваших приложений, укажите трассировку стека и линии виновника.
Показать ещё 5 комментариев
Теги:

1 ответ

0
 maybe this in your BookingActivity

 Bundle b = i.getExtras();
 String name = b.getString("name", "default name");
 String room = b.getString("room", "default room");

edit: также, putche BookingActivity с startActivityForResult(), чтобы вы могли получить данные обратно позже, когда вы закончите с ним.

EDIT: можно найти примеры startActivityForResult. Как вернуть результат (startActivityForResult) из TabHost Activity? и http://android.rahulblogs.com/android-startactivityforresult-example/

  • 0
    Извините, я тихий новичок в этом. и я узнал обе эти вещи из учебников. (Интересно, могут ли они работать вместе, или я просто иду по этому совершенно неправильному пути. В любом случае. Добавление вышеупомянутой игры мне ошибки, пока я не удалил имя / комнату по умолчанию. И я не уверен, куда должна идти startActivityForResult (). Спасибо
  • 0
    вместо вызова startActivity (Intent i) вызывается startActivityForResult (Intent i, int requestCode); также, пожалуйста, я не могу подчеркнуть это достаточно ... опубликуйте ваши ошибки, или вы ожидаете, что я волшебным образом их угадаю? Помоги мне помочь тебе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню