Map , List Android

*Android 学习之 Map , List*

点击前
点击前
进入界面后
这里写图片描述
点击cha01
这里写图片描述
进入hello界面(界面未设置)
这里写图片描述
点击进入test界面(界面未设置)
这里写图片描述



具体实现


在安卓的项目下新建俩个包,包里再设置新的界面
这里写图片描述


在安卓的Androidmanifest文件中注册四个界面

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sshhsun.mapidemo"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="8"
        android:targetSdkVersion="21" />

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

        <activity
            android:name="com.sshhsun.test01.Mhello01"
            android:label="chap01/Hello" >
            <intent-filter>
                <action android:name="com.sshhsun.test.Sample" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity
            android:name="com.sshhsun.test01.Mtest01"
            android:label="chap01/test" >
            <intent-filter>
                <action android:name="com.sshhsun.test.Sample" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
         <activity
            android:name="com.sshhsun.test02.Mhello02"
            android:label="chap02/Hello" >
            <intent-filter>
                <action android:name="com.sshhsun.test.Sample" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
         <activity
            android:name="com.sshhsun.test02.Mtest02"
            android:label="chap02/test" >
            <intent-filter>
                <action android:name="com.sshhsun.test.Sample" />

                <category android:name="android.intent.category.DEFAULT" />
            </intent-filter>
        </activity>
        <activity 
             android:name=".MHelloActivity" >
        </activity>
    </application>

</manifest>

主代码中

package com.sshhsun.mapidemo;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import android.app.ListActivity;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;


public class MainActivity extends  ListActivity {


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);

        List<Map<String, Object>> data = getData();

        String[] from = { "title" };// 代表数据从哪里来
        int[] to = { android.R.id.text1 };// 数据显示到哪里
        SimpleAdapter adapter = new SimpleAdapter
        (this, 
        data,
        android.R.layout.simple_list_item_1, 
        from,
        to);// 适配器,用来将数据和视图进行绑定
        setListAdapter(adapter);
    }
    public List<Map<String,Object>> getData()
    {

        Intent mstartIntent = getIntent();
        String mbasePath = mstartIntent.getStringExtra("prefixPath");//获取点击的章节信息

        List<Map<String, Object>> data=new ArrayList<Map<String,Object>>();
        Intent intent2=new Intent();
        intent2.setAction("com.sshhsun.test.Sample" );
        PackageManager mpm=getPackageManager();
        List<ResolveInfo> infos=mpm.queryIntentActivities(intent2, 0);
        Map <String,Boolean> ismap=new HashMap <String,Boolean>();
        for(ResolveInfo info:infos)
        {
            String label=info.loadLabel(mpm).toString();
            String[] labelPath = label.split("/");
        if(mbasePath==null||"".equals(mbasePath))
        {
            String  mprefix=labelPath[0];
            if(ismap.get(mprefix)==null)
            {
                Map <String,Object> map=new HashMap<String, Object>();
                ismap.put(mprefix, true);

                map.put("title",mprefix );

                Intent i=new Intent(this,MainActivity.class);
                i.putExtra("prefixPath", mprefix);
                map.put("intent", i);
                data.add(map);

            }

        }else if(label.startsWith(mbasePath))
        {
            String title=labelPath[1];
            Map<String,Object> map=new HashMap<String,Object>();
            Intent i=new Intent();
            i.setClassName(info.activityInfo.packageName, info.activityInfo.name);
            map.put("title", title);
            map.put("intent",i);
            data.add(map);

        }


        }

        return data; 

    }
    public List<Map<String,Object>> getTestData()
    {
        List<Map<String, Object>> data=new ArrayList<Map<String,Object>>();
        Map<String,Object> map1=new HashMap<String, Object>();
        map1.put("title", "part 1");                    
        map1.put("intent", new Intent(this,MHelloActivity .class));
        data.add(map1);
        Map<String,Object> map2=new HashMap<String, Object>();
        map2.put("title", "part 2");
        Intent i=new Intent(this,MainActivity .class);
        i.putExtra("position",1);
        map2.put("intent",i);
        data.add(map2);
        Map<String,Object> map3=new HashMap<String, Object>();
        map3.put("title", "part 3");
        Intent i2=new Intent(this,MainActivity .class);
        i2.putExtra("position",2);
        map3.put("intent",i2);
        data.add(map3);
        Map<String,Object> map4=new HashMap<String, Object>();
        map4.put("title", "part 4");
        Intent i3=new Intent(this,MainActivity .class);
        i3.putExtra("position",3);
        map4.put("intent",i3);
        data.add(map4);
        String[]  mfrom={"title"};
        int[] mto={android.R.id.text1};

        SimpleAdapter adapter=new SimpleAdapter(this, data, android.R.layout.simple_list_item_1, mfrom, mto);
        setListAdapter(adapter);

        Intent intent1=getIntent();
        int p=intent1.getIntExtra("position",-1);
        if(p!=-1){//判定通过意图传递的参数
            Map<String,Object> map5=new HashMap<String, Object>();
            map5.put("title", "点击了"+p+"行");
            data.add(map5);
            }return data;
    }






    @Override
    protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
        //Log.e("","");
//      Intent intent=new Intent(this,MainActivity.class);//创建意图,再次启动MainActivity
//      intent.putExtra("position", position);//在意图中放入参数

        Map<String,Object> map=(Map<String,Object>)l.getItemAtPosition(position);
        Intent mintent=(Intent) map.get("intent");
        startActivity(mintent);

    }
}

“`

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值