【问题标题】:How to duplicate a ListView item to a second ListView Activity如何将 ListView 项目复制到第二个 ListView Activity
【发布时间】:2014-03-06 02:01:19
【问题描述】:

我有一个我不知道如何解决的问题。

例子:

我有一个名为 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;
    }

   }

字符串.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>

【问题讨论】:

    标签: java android eclipse listview


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多