Android 用户按下按钮后保存项目列表

Android 用户按下按钮后保存项目列表,android,Android,我有一个项目列表,这些项目是使用Jsoup从网站解析的结果创建的,这是一项在按下图像按钮时启动的任务。结果看起来不错,但当我按下手机上的“后退”按钮,然后返回活动时,结果消失,屏幕空白。这意味着用户必须再次按下按钮 那么,我如何只在按下图像按钮后保存项目列表呢 谢谢 编辑 我查看了Android站点上的数据存储页面,并完成了以下操作: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreat

我有一个项目列表,这些项目是使用Jsoup从网站解析的结果创建的,这是一项在按下图像按钮时启动的任务。结果看起来不错,但当我按下手机上的“后退”按钮,然后返回活动时,结果消失,屏幕空白。这意味着用户必须再次按下按钮

那么,我如何只在按下图像按钮后保存项目列表呢

谢谢

编辑

我查看了Android站点上的数据存储页面,并完成了以下操作:

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

    // Store data once created
    SharedPreferences settings = getSharedPreferences( PREFS_NAME,0 );

    reload = (Button)findViewById( R.id.reloadTen );
    reload.setOnClickListener( this );

    list = getListView();
    list.setOnItemClickListener( new OnItemClickListener() 
    {

        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id ) 
        {
            // Start an activity based on what list view item is pressed
            Intent intent = new Intent( newSightings.this, newCompass.class );

            // Pass the data we retrieved to the next activity
            intent.putExtra( "info",data[position]  );
            startActivity( intent );
        }

    });
    list.setTextFilterEnabled( true );
    adapter = new ArrayAdapter<String>( this, android.R.layout.simple_list_item_1, listItems );
    setListAdapter( adapter );
}

@Override
protected void onStop() 
{
    super.onStop();

    SharedPreferences settings = getSharedPreferences( PREFS_NAME,0 );
    SharedPreferences.Editor editor = settings.edit();

    for( int i = 0; i < data.length; i++ )
    {
        editor.putString( "sighting"+i,data[i].toString() );
    }
    editor.commit();
}
@覆盖
创建时受保护的void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.new_目击);
//一旦创建,就存储数据
SharedReferences设置=GetSharedReferences(首选项名称,0);
重载=(按钮)findViewById(R.id.reloadTen);
reload.setOnClickListener(这个);
list=getListView();
list.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id)
{
//根据按下的列表视图项启动活动
意向意向=新意向(newSightings.this、newcommpass.class);
//将检索到的数据传递给下一个活动
意向。额外(“信息”,数据[位置]);
星触觉(意向);
}
});
list.setTextFilterEnabled(true);
adapter=new ArrayAdapter(这个,android.R.layout.simple\u list\u item\u 1,listItems);
setListAdapter(适配器);
}
@凌驾
受保护的void onStop()
{
super.onStop();
SharedReferences设置=GetSharedReferences(首选项名称,0);
SharedReferences.Editor=settings.edit();
对于(int i=0;i

我知道我在onCreate方法中做得不多,因为我不确定如何正确地调用数据。有很多数据,每个键的值都非常不同。顺便说一句,在实际获取数据的异步任务期间,我应该添加到共享首选项中吗?我对此有点困惑…

当你使用back时,活动就消失了。因此,您需要硬保存数据。我可以帮忙

然后,在onCreate()中检查是否保存了数据,如果保存了,则加载数据


致以最诚挚的问候。

当您使用back时,活动将消失。因此,您需要硬保存数据。我可以帮忙

然后,在onCreate()中检查是否保存了数据,如果保存了,则加载数据


致以最诚挚的问候。

您有两个选项来保存此类信息:

  • 就在解析完成之后。一旦数据显示给用户,您可以使用
    SharedReferences
    保存数据
  • 您可以截取后退键,请参阅

  • 我会选择1号,因为2号更麻烦。请参阅文档以了解何时恢复保存的信息。

    保存此类信息有两个选项:

  • 就在解析完成之后。一旦数据显示给用户,您可以使用
    SharedReferences
    保存数据
  • 您可以截取后退键,请参阅

  • 我会选择1号,因为2号更麻烦。请参阅文档以了解何时恢复保存的信息。

    在使用共享首选项之前,您能否告知要保存多少信息。如果你想保存很少的数据,那就直接去保存,但是如果你有大量的数据,那就不要选择共享偏好。 当您从服务器上检索数据时,请将数据存储在数据库中。单击按钮,并在需要时检索数据

    在解决问题的琐碎过程中,您是“listitems”您保存数据的地方,因此只需将其设置为静态,并尝试解决您的问题


    上述两项都必须适用于您的场景。

    在使用共享首选项之前,您能否告诉我您要保存多少。如果你想保存很少的数据,那就直接去保存,但是如果你有大量的数据,那就不要选择共享偏好。 当您从服务器上检索数据时,请将数据存储在数据库中。单击按钮,并在需要时检索数据

    在解决问题的琐碎过程中,您是“listitems”您保存数据的地方,因此只需将其设置为静态,并尝试解决您的问题


    上述两项都必须适用于您的场景。

    这是一项活动吗?或者活动A有按钮,活动B显示项目列表?是的,这都是一个活动。当按下图像按钮时,它会获取数据并将其放在屏幕上。这是一个活动吗?或者活动A有按钮,活动B显示项目列表?是的,这都是一个活动。当按下图像按钮时,它会获取数据并将其显示在屏幕上。理解你有点困难,但我想我理解你了。很难理解你,但我想我理解你了。干杯是的,我看了看后键,它似乎是最复杂的方法。我根据pouzzler指示我的文档链接中概述的当前活动被遮挡的时间成功地存储了用户位置数据。当我将列表视图放在那里时,我将发布我所做的。再次感谢:黛雅,我看了看后键,这似乎是最复杂的方法。我根据pouzzler指示我的文档链接中概述的当前活动被遮挡的时间成功地存储了用户位置数据。当我将列表视图放在那里时,我将发布我所做的。再次感谢:D