2017-07-13 60 views
0

我是新來的Android世界,所以我開始通過創建一個「Keep」應用程序來練習。所以如你所想,我可以添加註釋。問題是,在這裏,我在這裏走我的主要活動:GetExtra Android無法正常工作

@Override 
protected void onResume() { 
    super.onResume(); 
    if (newNote) { 
     newNote = false; 
     findViewById(R.id.note)).setText(intentNewNote.getStringExtra("toto")); 
    } 
} 

public void addNotes(View view) { 
    newNote = true; 
    intentNewNote = new Intent(this, newNote.class); 
    startActivity(intentNewNote); 
} 

所以我有一個按鈕調用的onClick addNotes這裏是newNote類 -

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    this.setContentView(R.layout.new_note); 
    intent = this.getIntent(); 
} 

@Override 
protected void onDestroy() { 
    intent.putExtra("toto", "tototookiklojlojlllllllllllllllllllllllllllllto"); 
    super.onDestroy(); 
} 

的TOTO Extra是一個測試,但它可以「T印製,這樣它的工作

@Override 
protected void onResume() { 
    super.onResume(); 
    if (newNote) { 
     newNote = false; 
     intentNewNote.putExtra("toto", "dzazda"); 
     ((TextView) findViewById(R.id.note)).setText(intentNewNote.getStringExtra("toto")); 
    } 
} 

所以,當我把多餘的另一個動作是不工作的唯一解釋是,我得到了addNotes類的意圖是不一樣的。 有人有想法嗎?

謝謝。

回答

1

我想了解你在做什麼,我相信你試圖從第二個活動中返回一些信息,但你使用的是你收到的同樣的意圖。它適用於Android的方式是這樣的:

從你FirstActivity調用使用startActivityForResult的SecondActivity()方法

例如:

意向書I =新意圖(這一點,SecondActivity.class); startActivityForResult(i,1); 在您的SecondActivity中設置您想要返回到FirstActivity的數據。如果你不想返回,不要設置任何。

例如:在secondActivity如果要發回數據:

Intent returnIntent = new Intent(); 
returnIntent.putExtra("result",result); 
setResult(Activity.RESULT_OK,returnIntent); 
finish(); 

如果你不想返回數據:在

Intent returnIntent = new Intent(); 
setResult(Activity.RESULT_CANCELED, returnIntent); 
finish(); 

編輯

現在您的FirstActivity類爲onActivityResult()方法編寫以下代碼。

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

if (requestCode == 1) { 
    if(resultCode == Activity.RESULT_OK){ 
     String result=data.getStringExtra("result"); 
    } 
    if (resultCode == Activity.RESULT_CANCELED) { 
     //Write your code if there's no result 
    } 
} 
}//onActivityResult 
+0

它工作得很好,謝謝它更有用! –

1

您是否在使用putExtra保存數據?我很困惑你在做什麼。

爲了創建一個Keep類型的應用程序,您將需要某種數據庫/服務器。看看Parse或Firebase。

+0

是的,這是因爲當我搜索時,我發現這是在動作之間傳遞信息的最佳方式。 但我會嘗試看看Parse和Firebase謝謝! –

+0

是的,轉移信息。它不是一種拯救它的形式。 – DroiDev

相關問題