0

我正在尝试在我的活动中设置第二个膨胀布局,一个用于从时间选择器设置警报的膨胀布局,第二个用于膨胀数字选择器以设置数量。到目前为止,第二个按钮不会响应,或者基于另一组代码(显示的一个),我得到一个运行时错误。谁能告诉我我做错了什么?

package org.iimed.www;

import java.util.Calendar;

import org.iimed.www.DateTimePicker.DateWatcher;

import android.app.Activity;
import android.app.AlarmManager;
import android.app.Dialog;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.TimePicker;
import android.widget.Toast;

public class CaAdd extends Activity implements OnClickListener {
    Button button_click, amount;
    TextView dateResult, date2;
    int hrs, min;
    int amountt = 0;
    EditText amountedit;
    String amountText;
    Dialog amountdialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.datetimeactivity);
        dateResult = (TextView) findViewById(R.id.textview1);
        date2 = (TextView) findViewById(R.id.textView2);
        button_click = (Button) findViewById(R.id.setbtn);
        amount = (Button) findViewById(R.id.amountbtn);
        amount.setOnClickListener(this);
        button_click.setOnClickListener(this);

    }

    public void onClick(View v) {
        switch (v.getId()) {

        case R.id.setbtn:

            amountdialog = new Dialog(this);

            final Dialog mDateTimeDialog = new Dialog(this);
            // Inflate the root layout
            final RelativeLayout mDateTimeDialogView = (RelativeLayout) getLayoutInflater()
                    .inflate(R.layout.date_time_dialog, null);
            // Grab widget instance
            final DateTimePicker mDateTimePicker = (DateTimePicker) mDateTimeDialogView
                    .findViewById(R.id.DateTimePicker);

            mDateTimePicker.initData();

            Button setDateBtn = (Button) mDateTimeDialogView
                    .findViewById(R.id.SetDateTime);
            // Update demo TextViews when the "OK" button is clicked
            setDateBtn.setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Intent intent = new Intent(CaAdd.this, AlarmReceiver.class);
                    PendingIntent pi = PendingIntent.getActivity(CaAdd.this, 2,
                            intent, PendingIntent.FLAG_CANCEL_CURRENT);
                    AlarmManager alm = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

                    hrs = mDateTimePicker.getHour();
                    min = mDateTimePicker.getMinute();
                    Calendar calendar = Calendar.getInstance();
                    calendar.set(Calendar.HOUR_OF_DAY, hrs);
                    calendar.set(Calendar.MINUTE, min);
                    calendar.set(Calendar.SECOND, 0);
                    alm.set(AlarmManager.RTC_WAKEUP,
                            calendar.getTimeInMillis(), pi);

                    mDateTimePicker.clearFocus();
                    String result_string = mDateTimePicker.getMonth() + "/"
                            + String.valueOf(mDateTimePicker.getDay()) + "/"
                            + String.valueOf(mDateTimePicker.getYear()) + "  "
                            + String.valueOf(mDateTimePicker.getHour()) + ":"
                            + String.valueOf(mDateTimePicker.getMinute());

                    if (mDateTimePicker.getHour() > 12)
                        result_string = result_string + "PM";
                    else
                        result_string = result_string + "AM";
                    date2.setText(result_string);

                    mDateTimeDialog.dismiss();
                }
            });

            Button cancelBtn = (Button) mDateTimeDialogView
                    .findViewById(R.id.CancelDialog);
            // Cancel the dialog when the "Cancel" button is clicked
            cancelBtn.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    mDateTimePicker.reset();
                    mDateTimeDialog.cancel();
                }
            });

            // Reset Date and Time pickers when the "Reset" button is clicked

            Button resetBtn = (Button) mDateTimeDialogView
                    .findViewById(R.id.ResetDateTime);
            resetBtn.setOnClickListener(new OnClickListener() {

                public void onClick(View v) {
                    mDateTimePicker.reset();
                }
            });

            Button amountbtn = (Button) findViewById(R.id.amountbtn);
            amountbtn.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {

                    // Inflate the root layout
                    final RelativeLayout amountView = (RelativeLayout) getLayoutInflater()
                            .inflate(R.layout.amount, null);
                    // Grab widget instance

                    amountdialog.requestWindowFeature(Window.FEATURE_NO_TITLE);

                    amountdialog.setContentView(amountView);

                    amountdialog.show();
                    amountedit = (EditText) amountView
                            .findViewById(R.id.amount);
                    ImageButton increase = (ImageButton) amountView
                            .findViewById(R.id.increase);
                    increase.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {

                            amountt++;
                            amountText = Integer.toString(amountt);
                            amountedit.setHint(amountText);
                        }
                    });

                    ImageButton decrease = (ImageButton) amountView
                            .findViewById(R.id.decrease);
                    decrease.setOnClickListener(new OnClickListener() {

                        public void onClick(View v) {
                            amountt--;
                            amountText = Integer.toString(amountt);
                            amountedit.setHint(amountText);

                        }
                    });
                    amountdialog.dismiss();
                    // No title on the dialog window
                    mDateTimeDialog
                            .requestWindowFeature(Window.FEATURE_NO_TITLE);
                    // Set the dialog content view
                    mDateTimeDialog.setContentView(mDateTimeDialogView);
                    // Display the dialog
                    mDateTimeDialog.show();

                }
            });
        }
    }
}
4

0 回答 0