我有一个问题,我无法理解如何解决。
示例:
我有一个名为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>
答案 0 :(得分:0)
我的地图,点击后,应该开始一个新的活动(让我们称之为MyMapsActivity
)。 MyMapsActivity将扩展ListActivity
,就像您当前的活动一样。您需要一个存储在设备上的数组(或其他)数组,但只需将它们调整为ListView,就像您在第一个活动中所做的一样,并再次在onListItemClick
中取用用户到包含已下载的特定地图的活动。
除非我误解了您的问题,否则您应该能够在新的MyMapsActivity
的第一项活动中复制您已经在做的事情。