如何将ListView项复制到第二个ListView活动

时间:2014-03-06 02:01:20

标签: java android eclipse listview

我有一个问题,我无法理解如何解决。

示例:

我有一个名为Maps的列表视图:

1 My Maps
2 France map
3 Germany map
4 Italy map

我的地图指向包含下载地图列表视图的活动。

法国地图,德国地图和意大利地图,如果点击,则启动地图文件下载,或者,如果已下载地图文件,则打开相关地图。

我需要了解的是如何在下载后复制“我的地图活动”中的列表视图项目

示例:

下载前:

1 My Maps   ------> no maps
2 France map
3 Germany map
4 Italy map

下载法国地图文件后:

1 My Maps   ------> France map  -------> open France map
2 France map ------- > open France map
3 Germany map
4 Italy map

我必须使用哪种方法来获得此结果?

谢谢

这是迄今为止的项目:

MainActivity.java

    import android.os.Bundle;
    import android.app.Activity;
    import android.content.Intent;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemClickListener;
    import android.widget.ListView;

    public class MainActivity extends Activity implements OnItemClickListener{

    ListView listView;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    listView = (ListView) findViewById(R.id.mapsList);
    listView.setOnItemClickListener(this);

    }


    @Override
    public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
        switch (position){
         case 0:{
            Intent Info = new Intent(MainActivity.this, MyMapsActivity.class);
        startActivity(Info);
          }
          break;
          case 1:{
          // do something
          }
          break;
          }

      }

   }

activity_main.xml中

    <?xml version='1.0' encoding='utf-8'?>
    <LinearLayout xmlns:android='http://schemas.android.com/apk/res/android'
      android:layout_width='fill_parent'
      android:layout_height='fill_parent'
      android:orientation='vertical' >

      <ListView
        android:id="@+id/mapsList"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:entries="@array/maps_array"
        />
   </LinearLayout>

MyMapsActivity.java

    import android.app.ListActivity;
    import android.os.Bundle;
    import android.view.Menu;



    public class MyMapsActivity extends ListActivity {

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

   }

的strings.xml

    <?xml version="1.0" encoding="utf-8"?>
       <resources>

            <string name="app_name">Maps</string>
            <string name="action_settings">Settings</string>

            <string-array name="maps_array">
                <item>MyMaps</item>
                <item>France</item>
                <item>Germany</item>
                <item>Italy</item>
                <item>New York</item>
                <item>Hamburg</item>
                <item>Berlin</item>
           </string-array>

     </resources>

1 个答案:

答案 0 :(得分:0)

我的地图,点击后,应该开始一个新的活动(让我们称之为MyMapsActivity)。 MyMapsActivity将扩展ListActivity,就像您当前的活动一样。您需要一个存储在设备上的数组(或其他)数组,但只需将它们调整为ListView,就像您在第一个活动中所做的一样,并再次在onListItemClick中取用用户到包含已下载的特定地图的活动。

除非我误解了您的问题,否则您应该能够在新的MyMapsActivity的第一项活动中复制您已经在做的事情。