2015-09-15 151 views
2

我想爲Android做一個待辦事項列表應用程序。這個程序有兩個活動。主要活動是我有我的EditText和Submit按鈕。第二個活動有一個ListView,它將填充MainActivity EditText中的數據。我在哪裏可以將額外的東西放入ArrayList中?

MainActivity.java 

public class MainActivity extends AppCompatActivity { 

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

     public void goToListView(View view) {   

     EditText eT = (EditText) findViewById(R.id.enterTasks);   
     Intent intent = new Intent(this, SecondActivity.class);  
     intent.putExtra("tasks", eT.getText().toString());  
     startActivity(intent); 
    }  
}    

我相信正在傳遞數據,因爲我可以在第二個活動中將該數據放入TextView中。

我的第二個Activity有ArrayList和ArrayAdapter設置。我的問題是我不知道向ArrayAdapter傳遞額外的內容。

SecondActivity.java 

public class SecondActivity extends AppCompatActivity { 
    private ArrayList<String> arrayListToDo; 
    private ArrayAdapter<String> arrayAdapterToDo; 

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

     arrayListToDo = new ArrayList<>(); 
     arrayAdapterToDo = new ArrayAdapter<> (this, android.R.layout.simple_list_item_1, 
     arrayListToDo); 
     ListView listView = (ListView)findViewById(R.id.listView); 
     listView.setAdapter(arrayAdapterToDo); 

     TextView nameView = (TextView) findViewById(R.id.textView); 
     nameView.setText(getIntent().getExtras().getString("tasks")); 
     } 
} 

我意識到如果我改變狀態,我的數據將不會被保存。當我尋找答案時,我發現了這一點。我的問題是我應該在哪裏把我的額外的ArrayAdapter?非常感謝您花時間回答我的問題。對此,我真的非常感激。

回答

0

您正在傳遞一個String。第一個問題是,如果該字符串可以包含許多不同的值(例如用「,」分隔)或者它只是一個任務。 我認爲他們可以很多,因爲額外的名字是「任務」。

因此,有考慮到這一點,你有兩種可能性:

1)您保持字符串參數,然後你解析內容到一個數組,如:

String tasksExtra = getIntent().getExtras().getString("tasks"); 
String[] tasks = tasksExtra.split(","); // if your separator is the comma. 

然後你通過任務數組一個ArrayAdapter:

arrayAdapterToDo = new ArrayAdapter<> (this, android.R.layout.simple_list_item_1, 
     tasks); 

2)在您的MainActivity,你有,例如,一個EditText,一個 「+」 按鈕,提交按鈕。當用戶輸入任務時,他可以按「+」按鈕,這會將任務添加到字符串列表中(您可以在下面顯示),清除EditText並允許用戶添加更多任務。 然後,當用戶按下提交,你可以把這個字符串數組作爲一個額外的:

intent.putStringArrayListExtra("tasks", yourStringArrayList); 

intent.putStringArrayExtra("tasks", yourStringArray); 

,並直接在SecondActivity使用它:

ArrayList<String> tasks = getIntent().getExtras().getStringArrayListExtra("tasks"); 
arrayAdapterToDo = new ArrayAdapter<> (this, android.R.layout.simple_list_item_1, 
     tasks); 

String[] tasks = getIntent().getExtras().getStringArrayExtra("tasks"); 
arrayAdapterToDo = new ArrayAdapter<> (this, android.R.layout.simple_list_item_1, 
     tasks); 
+0

我不知道我是不是用來將字符串解析成數組。這是我被卡住的地方。你的代碼工作完美,現在我明白我做錯了什麼。非常感謝! –

相關問題