0

我有一个用户创建事件的应用程序。用户需要从一个名称列表的 ListView 活动中检索某个名称。

我在单击链接到另一个活动(日历活动)的日期按钮后确保名称应保留在活动中,然后返回到当前活动时遇到问题。

我的 3 页代码:

ListViewCreate_Events.java - 用于从活动中获取某个名称以及btnDate onClickListener链接到另一个活动(日历活动)的代码

Bundle bundle = getIntent().getExtras();  
        if(bundle != null)
        {

            String date = bundle.getString("date");

            txtDate.setText(date);  

        }

        Bundle b = getIntent().getExtras();
        if(b != null)
        {
            String name = bundle.getString("name");
            txtName.setText("Create an event for:" +name);
        }

buttonDate = (Button) findViewById(R.id.btnDate);
        buttonDate.setOnClickListener(new View.OnClickListener()
        {

            @Override
            public void onClick(View v)
            {
                Intent calIntent = new Intent(Create_Events.this, Calendar_Event.class);
                startActivity(calIntent);


            }

        });


ContactsList.java --  the ListView of the names which is passed to the Create_Events page.

    Cursor cursor = null;

               cursor = (Cursor) l.getItemAtPosition(position);
               Intent intent = new Intent(ContactsList.this, Create_Events.class);
               intent.putExtra("name", cursor.getString(cursor.getColumnIndex(buddyDB.KEY_NAME)));
               startActivity(intent);

我需要这方面的帮助。
提供的任何帮助将不胜感激。提前致谢!=)

4

3 回答 3

1

您可以通过保存当前屏幕状态来获得此行为,您可以使用共享首选项或其他方式(xml,数据库,..),这样在您离开活动(onPause)之前,您可以保存您需要的任何信息..和on (onResume) 如果信息存在(它不是第一次加载活动),

收集数据并将其放在屏幕上..

如果这对您来说太多了并且您只需要保存名称字符串,请尝试这样做: 如何在 Android 中声明全局变量?

希望能帮助到你...

于 2012-09-24T07:05:45.283 回答
1

好的,我从您的问题中了解到,您希望在从另一项活动回来后将您的数据保留在屏幕上。比如活动 A--> 活动 B--> 活动 A

因此,在活动 A 的清单文件中设置

      android:launchmode="singletop" 

并且,当您从活动 B 回到活动 A 时

设置意图意图=新意图(ActivtyB.this,ActivityA.class);意图.addFlags(意图.FLAG_ACTIVITY_CLEAR_TOP);开始活动(意图);

于 2012-10-15T09:29:55.783 回答
0

您可以使用 SharedPreferences 存储名称,同时使用 bundle 存储日期。

从contactLists.java 添加这些代码

private void SavePreferences(String key, String value)
{
    SharedPreferences sharedPref = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
    SharedPreferences.Editor editor = sharedPref.edit();
    editor.putString(key, value);
    editor.commit();
}

private void LoadPreferences()
{
    SharedPreferences sharedPref = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
    String name = sharedPref.getString("name", "");



} 

然后将名称设置为将显示在 listView 上的 textView。然后在 create_events 页面中加载首选项,即使您转到另一个活动,也会显示该名称。如果您还有任何问题,请告诉我。(:

于 2012-09-24T07:06:04.337 回答