2016-06-28 22 views
1

我送一個字符串從一個活動另一個活動putExtrasgetExtras。 然後我將此字符串顯示爲TextView。當我回去選擇另一個字符串時,它會覆蓋TextView中的前一個字符串。 我想將新的字符串放在textView的新行中。 如何做到這一點? (我送一個按鈕字符串) 這是我在收到活動代碼:傳入的TextView一個新字符串,新線

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


    TextView completedTasksView = (TextView)findViewById(R.id.completed_tasks); 


    Intent intent = getIntent(); 

    String completedTasks = intent.getExtras().getString("completedTasks"); 
    completedTasksView.setText(completedTasks); 


} 

} 
+0

您可以使用https://developer.android.com/reference/android/text/Html.html#fromHtml%28java.lang.String,%20int%29,然後使用html-breaks。 –

+0

您可能需要一個RecycleView,這正是它的用途。如果你確實堅持的話,可以用TextView來實現。你連接新的值與舊的(而不是'completedTasksView.setText(completedTasks)'do' completedTasksView.setText(completedTasksView.getText()+ completedTask' –

回答

2

據:TextView

的append(CharSequence的文字)

便捷方法:將指定的 文本附加到TextView的顯示緩衝區,將其升級到 如果BufferType.EDITABLE不可編輯,則爲BufferType.EDITABLE。

所以使用:

completedTasksView.append("\n" + completedTasks); 
+0

No ..它沒有工作..發生了同樣的事情..我應該做這個onResume什麼的? –

+0

@ThanosTokmakis該方法是正確的,我認爲你必須閱讀http:// stackoverflow。com/questions/920306 /發送數據回到主要活動在Android中的活動之間的正確使用意圖 –

+0

這是我怎麼發extras'checkTask.setOnClickListener(new View.OnClickListener(){ @Override 公共無效的onClick(視圖v){ 意圖意圖=新意圖(TasksActivity.this,CompletedTasks.class); intent.putExtra( 「completedTasks」,tasks.get(0)); startActivity(意向) ; tasks.remove(tasks.get(0)); } });'; –

0

你必須存儲您發送以前使用putExtras因爲下一次活動將被再次重建,並您以前的數據都將丟失的字符串。爲了保存以前的字符串,你可以創建一個靜態的數組列表,並在getIntent上添加你的字符串到數組列表,並且當你想打印時使用一個for循環並且創建一個附加了「/ n」的單個字符串,並將這個字符串設置爲textview 對於eg 。

public static ArrayList<String> list; 

要添加字符串列表

list.add(completedTasks); 

要創建的ArrayList

String text=""; 
for(int i=0;i<list.size();i++) 
{ 
if(text!="") 
{ 
text=text+"\n"+list(i); 
}else{ 
text=list(i); 
} 
} 
textview.setText(text); 

注意一個字符串: ArrayList的應該是靜態的應用程序,而不是內活動,以便確定不同班級的數據列表,然後活動

0

您可以創建一個字符串變量的一個地球儀類每次都會存儲您completedTask文本設置文本,當你得到新的字符串...

0

創建一個全局字符串始終追加到它:

String completedTasks = ""; 

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


     TextView completedTasksView = (TextView)findViewById(R.id.completed_tasks); 


     Intent intent = getIntent(); 

     completedTasks += "\n" + intent.getExtras().getString("completedTasks"); 
     completedTasksView.setText(completedTasks); 


    } 

    }