2015-05-11 59 views
0

我已經創建了所有自己的第一個應用程序爲Android。用戶必須點擊下一個活動啓動按鈕,將打開新的活動。用戶將在該處輸入文字,文字將返回到前一個屏幕。該文本將在textview上更新。最初textview將有「沒有文字輸入的信息」,並且在從活動更新之後它將是輸入的新文本。 我有問題,文本框消失,並沒有消息時從新的活動更新顯示。活動沒有更新以前的活動TextView

這是我的主要活動

public static String new_message; 
final int REQUEST_CODE = 1; 

public void new_activity(View view){ 
    Intent intent = new Intent(this, new_activity.class); 
    startActivityForResult(intent, REQUEST_CODE); 
} 

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    if(requestCode == REQUEST_CODE && resultCode == RESULT_OK && data!= null){ 
     TextView set_message = (TextView) findViewById(R.id.entered_text); 
     set_message.setText(new_message); 
    } 

} 


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


} 
public void show_text(View view){ 
     TextView message; 
     message = (TextView) findViewById(R.id.showText); 
     message.setText("I have been cliked now!!"); 
} 

這是我的新的活動Java文件。

public void return_previous(View view){ 
    Intent resultIntent = new Intent(); 
    EditText editTextBox = (EditText) findViewById(R.id.text_entered); 
    String text_entered = editTextBox.getText().toString(); 
    resultIntent.putExtra(MainActivity.new_message,text_entered); 
    setResult(RESULT_OK, resultIntent); 
    this.finish(); 
} 
+0

所以你的意思是,可以在其中輸入文本的活動的作品,你管理提交文本和應用程序返回到第一個活動,但返回活動未更新。我對嗎?爲什麼不添加一些調試日誌,如Log.d(「ResultActivity」,「result returned:」+ new_message); – Sindico

回答

1

編輯onActivityResult符合此

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data){ 
    if(requestCode == REQUEST_CODE && resultCode == RESULT_OK && data!= null){ 

     TextView set_message = (TextView) findViewById(R.id.entered_text); 

     //set_message.setText(new_message); 
     set_message.setText(data.getStringExtra(new_message)); 
    } 

} 
+0

謝謝你的工作。你能解釋我爲什麼我的代碼不工作,你爲什麼做這些改變? –

+0

,因爲當你在前面的Activity中調用putString時,它實際上會將此String值添加到某種「鍵/值映射」中,因此,您將字符串添加到具有「newMessage」的實體中,因爲它是id ....但要檢索這個值你必須使用這個鍵,並從調用意圖(在這種情況下是「數據」)得到它 –

+0

我仍然不明白關鍵值映射部分! –