2017-08-12 64 views
0

我正在使用startActivityForResult()[在MainActivity類中]調用另一個名爲「EditActivity」的活動&將一些已編輯的值返回到MainActivity。 EditActivity有一個按鈕,當按下時應該將用戶返回到MainActivity。但相反,該應用程序正在關閉按鈕。 內MainActivity:單擊按鈕而不是返回主活動後,應用程序關閉

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
      Intent intent = new Intent(); 
      intent.setClass(MainActivity.this, EditActivity.class); 
      intent.putExtra("edit_data", arrayList.get(position).toString()); 
      intent.putExtra("edit_position", position); 
      startActivityForResult(intent, IntentValuesClass.REQUEST_CODE); 
     } 


    }); 

內EditActivity:

saveButton.setOnClickListener(
      new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

        Intent data=new Intent(); 
        data.putExtra("edited_text",editInput); 
        data.putExtra("position",pos); 
        setResult(EditActivity.RESULT_OK,data); 
        Log.w(IntentValuesClass.Msg,"Button SAVE Clicked"); 
        finish(); 
        Log.w(IntentValuesClass.Msg,"finished"); 
       } 
      } 
    ); 

再次在返回MainActivity:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
     Log.w(IntentValuesClass.Msg,"Inside onActivityResult"); 
     int position; 
     if (requestCode == IntentValuesClass.REQUEST_CODE) { 
      if (resultCode==EditActivity.RESULT_OK) { 
       Log.w(IntentValuesClass.Msg,"Result ok"); 
       String s = data.getStringExtra("edited_text"); 
       position = data.getIntExtra("position",-1); 
       arrayList.remove(position); 
       arrayList.add(position, s); 
       adapter.notifyDataSetChanged(); 


      } 
     } 
    } 
+0

後錯誤日誌這裏 – akhilesh0707

+0

並放置在單擊的項目方法中設置斷點,並通過張貼任何偏離你的期望 – efekctive

+0

您的應用程序步驟可能崩潰,檢查這篇文章https://stackoverflow.com/questions/23353173 /不幸-myapp-has-stopped-how-can-i-solve-this/23353174#23353174並在你的問題中包含stacktrace。 –

回答

1

finish()在你的方法結束。

public void onClick(View v) { 
    Intent data=new Intent(); 
    data.putExtra("edited_text",editInput); 
    data.putExtra("position",pos); 
    setResult(EditActivity.RESULT_OK,data); 
    Log.w(IntentValuesClass.Msg,"Button SAVE Clicked"); 
    Log.w(IntentValuesClass.Msg,"finished"); 
    finish(); 
} 
相關問題