簡體   English   中英

當我嘗試訪問捆綁軟件中的信息時,為什么我的Android活動被強制關閉?

[英]Why does my Android activity force close when I try to access info I put in the bundle?

我正在編寫一個Android應用程序。 活動之一是ListActivity,因此當人員在列表中選擇一個項目時,我希望將該項目的文本值存儲在Intent / Bundle中,以便下一個活動知道該值。 我的代碼如下所示:

lv.setOnItemClickListener(new OnItemClickListener() {
        public void onItemClick(AdapterView parent, View view,
            int position, long id) {

            Intent intent = new Intent(view.getContext(), FavoriteEditFromDest.class);
            intent.putExtra("com.example.myapp.Name", ((TextView) view).getText());

            startActivity(intent);
        }
      });
    }

要啟動的活動的onCreate方法如下所示:

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

            // nameB is a global string variable defined above.
        nameB = savedInstanceState.getString("com.example.myapp.Name");
    }

當我從ListActivity的列表中單擊一個項目時,它開始執行onCreate代碼,但是當它到達嘗試檢索字符串值的行時,將顯示一個強制關閉對話框。

我在使用Bundle傳遞信息方面經驗不足,因此,我將不勝感激!

nameB = savedInstanceState.getString("com.example.myapp.Name");

應該替換為

Bundle bundle = getIntent().getExtras();
nameB = bundle.getString("com.example.myapp.Name");

試試看,看看是否有幫助。

在Eclipse中使用adb logcat ,DDMS或DDMS透視圖檢查您的堆棧跟蹤,並查看觸發“強制關閉”的異常。

在這種情況下,我懷疑您會發現放入Bundle內容不是String ,因為getText()不會返回String 但是,這只是一個猜測-您的堆棧跟蹤應該告訴您更多信息。

除其他問題外

intent.putExtra("com.example.myapp.Name", ((TextView) view).getText());

應該

intent.putExtra("com.example.myapp.Name", ((TextView) view).getText().toString());

暫無
暫無

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

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