簡體   English   中英

通過意圖發送捆綁包時,應用崩潰

[英]App crashes when sending a bundle through intent

在我的主要活動中,我使用putextra()方法通過意圖使用數據來粘貼數據

    private void editHandler() 
{
    //send the details to another form

    if (itemID > 0)
    {
        Bundle values = new Bundle();
        singleItem = (TODOListItem) adapter.getItem(itemID);
        Intent intent = new Intent(this,AddorEdit.class);

        values.putString("text",singleItem.getText());
        values.putString("date", singleItem.getDate());
        values.putString("time", singleItem.getDate());
        values.putInt("id", singleItem.getItemID());
        values.putInt("alarm", singleItem.getAlarm());

        intent.putExtra("bundle", values);
        startActivity(intent);
    }

在下一個活動中,我收到了這個意圖

     @Override
 protected void onCreate(Bundle savedInstanceState) 
 {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_addor_edit);



    todoNote = (EditText)findViewById(R.id.txt_todoNote);
    todoDate = (EditText) findViewById(R.id.txt_dateTODO);
    todoTime = (EditText) findViewById(R.id.txt_timeTODO);
    todoalarm =(ToggleButton) findViewById(R.id.toggle_alarm);
    alarmEnable = (ImageView) findViewById(R.id.img_alarmEnable);
    canceltodo = (Button) findViewById(R.id.btn_cancelTODO);
    maketodo = (Button) findViewById(R.id.btn_makeTODO);
    //Receiving intent
    Bundle bundle = getIntent().getBundleExtra("bundle");
    getValuesForEdit(bundle);


    todoalarm.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) 
        {
            if(todoalarm.getText().equals("ON"))
            {
                alarmEnable.setImageResource(R.drawable.dark_alarm);
                alarm = 1;
            }
            else
            {
                alarmEnable.setImageResource(0);
                alarm = 0;
            }

        }
    });

    maketodo.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            addnewTODO();
        }


    });


}


private void getValuesForEdit(Bundle bundle) 
{
    // if the Edit Button is pressed get all values from listView
        ID = bundle.getInt("id");
        todoNote.setText(bundle.getString("text"));
        todoDate.setText(bundle.getString("date"));
        todoTime.setText(bundle.getString("time"));
        alarm = bundle.getInt("alarm");
        if (alarm == 1)
        {
            todoalarm.setText("ON");
            alarmEnable.setImageResource(R.drawable.dark_alarm);
        }



}

和應用程序崩潰

我的意圖做錯了嗎? 哪個是在活動之間傳遞數據的正確方法? 需要建議和意見...

謝謝!!

Intent intent = new Intent(this,AddorEdit.class);
intent.putExtra("text",singleItem.getText());
intent.putExtra("date", singleItem.getDate());
intent.putExtra("time", singleItem.getDate());
intent.putExtra("id", singleItem.getItemID());
intent.putExtra("alarm", singleItem.getAlarm());
startActivity(intent);

//獲取此數據時:

ID = getIntent().getIntExtra("id");
todoNote.setText(getIntent().getStringExtra("text"));
todoDate.setText(getIntent().getStringExtra("date"));
todoTime.setText(getIntent().getStringExtra("time"));
alarm = getIntent().getIntExtra;

嘗試這個

    Bundle values = new Bundle();
    singleItem = (TODOListItem) adapter.getItem(itemID);
    Intent intent = new Intent(this,AddorEdit.class);

    values.putString("text",singleItem.getText());
    values.putString("date", singleItem.getDate());
    values.putString("time", singleItem.getDate());
    values.putInt("id", singleItem.getItemID());
    values.putInt("alarm", singleItem.getAlarm());

    intent.putExtras(values);
    startActivity(intent);

    Bundle bndl = this.getIntent().getExtras()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM