2013-04-26 84 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

相关问题