2013-04-26 80 views
1

如何通過按鈕按下其他活動來填充我的主要活動中的項目?我已經有了我的LayoutAdapter和一個PopulateAlarms對象,但我沒有爲我的按鈕的onClick方法編寫代碼。填充一個列表(通過從另一個活動按下按鈕)

感謝您的答案,但我應該更具體。這是一個鬧鐘應用程序,所以我希望我的主要填充當我的保存按鈕被點擊(這是在另一個屏幕)。我不確定如何在我的代碼中正確調用我的listview adatper。

Button save_btn = (Button) findViewById(R.id.save_btn); 
    save_btn.setOnClickListener(new OnClickListener() { 
     public void onClick(View v) { 
     // linking save with main 
     Intent intent = new Intent(SettingsActivity.this, MainClockActivity.class); 
     //Here I am trying to create a new item on my main 
     intent.putExtra("Alarm",vals); 
     startActivity(intent); 
    } 
    }); 

回答

0

從不同活動更改和更新列表的最佳方式可能是使用SQLite數據庫。您必須擴展SQLiteOpenHelper,並且在實現方法時使用onCreate創建表。將列表中的所有項目添加到數據庫getWritableDatabse().execSql("Your SQL code here")。在onClick中調用您創建的將項目添加到數據庫的方法。爲了從數據庫讀取,你可以得到一個Cursor對象的所有數據,並使用SimpleCursorAdapter顯示的字符串,像這樣:

Cursor c = getReadableDatabase().rawSql("SELECT * FROM tableName"); 
String[] from = { array of all your column names to show on list } 
int[] to = { array of res ids in list xml layout file where the data will be shown } 
//from and to indexes must match. Adapter will take data from collumn from[0] 
//and put it in the TextView pointed by the id in to[0] etc... 
SimpleCursorAdaper a = new SimpleCursorAdapter(..., from, to) 
list.setAdapter(a) 

最後一件事 - 讓改變可見當按下返回鍵和返回到主要活動,您可能需要調整onStart中的適配器。

另一種選擇是使用意圖:

onClick(View v) { 
    Intent i = new Intent(this, MainActivity.class); 
    i.putExtra("keyName", variable); 
    startActivity(i); 
} 
+0

我的問題實際上是關於意圖,我更新了我的問題,以更好地反映我的問題。謝謝 – deedle 2013-04-27 00:34:31

+0

我假設你從'MainClockActivity'開始'SettingsActivity'的意圖。在這種情況下,您不想創建新的意圖並打開另一個「MainClockActivity」活動 - 它將創建第二個「MainClockActivity」。你想要關閉'SettingsActivity',返回到主屏幕並查看保存的摘要。如果我跟着你,你想用[startActivityForResult](http://developer.android.com/reference/android/app/Activity.html#StartingActivities)開始'SettingsActivity',然後用'getIntent ()'和'SettingsActivity'中的'setResult()'。 – 2013-04-27 12:26:20

+0

非常豐富的感謝! – deedle 2013-04-27 19:41:18

0

你不知道。您可能需要啓動輔助Activity for result並基於結果填充或使用Fragments以及您想要的回調接口。如果您使用ActivityGroup,則不要。它已被棄用。

如果我誤解了您的問題,並且您只是在啓動次要活動時嘗試傳遞某些數據,則需要使用Extras

相關問題