intent listview gridview 笔记

来源:互联网 发布:怎么对比两列数据 编辑:程序博客网 时间:2024/06/05 04:44

一、Intent 界面跳转和数据传输

1、界面跳转

Intent intent2 = new Intent(); 

intent2.setClass(MainActivity.this, SecondActivity.class); 

2、单个数据传输

传输:

Intent intent =new Intent ();

intent.putExtra("dv", str);

接收:

Intent intent =getIntent();

 String str =intent.getStringExtra("dv")

注意: 1get***Extra 类型必须和上个界面数据类型一致。

2、前后两个 变量名必须相同(dv)。

接收:第一个activity

startActivityForResult(intent, 0); //startActivityForResult()代替startActivity()并带请求值,0reqesetCode ,这个值是任意的自定义int值,和result Code一样,为了方便接收返回数据

并重写onActivityResult方法,接收返回数据

protected void onActivityResult(int requestCode, int resultCode, Intent data) {

     // TODO Auto-generated method stub

     super.onActivityResult(requestCode, resultCode, data);

     if (requestCode==0) {

textSend1.setText(data.getStringExtra("receive1"));

}

int requestCode, 请求值int resultCode,返回值 Intent data 上一页传回的intent

注:所有携带数据的intent必须写在一个点击事件里才能运行

第二个activity 

intent=getIntent();

textSend1.setText(intent.getStringExtra("send2")); 

textSend2.setText(intent.getStringExtra("send1"));//接收上一个activity传来的数据。

intent.putExtra("receive1"textReceive1.getText().toString());

setResult(RESULT_OKintent);

finish();  //携带数据返回并结束当前activity

3、多条数据传输(使用bundle封装数据)

传输:

Intent intent2 = new Intent(); 

 

String name="何赛";

String phoneNumber="13180901145";

int age =21;

 

Bundle bundle =new Bundle();

bundle.putString("name", name);

bundle.putString("phoneNumber", phoneNumber);

bundle.putInt("age", age);

intent2.putExtras(bundle);

  startActivity(intent2);

接收:

Bundle bundle=getIntent().getExtras();

String str1= bundle.getString("name");

String str2= bundle.getString("phoneNumber");

int a= bundle.getInt("age");

ett.setText("name:"+str1+"\n"+"phoneNumber:"+str2);

 

 

 

 

 

 

 

 

二、Listview 列表显示数据

1、使用arrayadapter实现单行列表。

String[] str={

         "美国","中国","英国","法国","德国","日本"

        };

        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, str);

        listView.setAdapter(adapter);

2使用simpleadapter时间多样化列表。

 List<Map<String, Object>> listItems=

         new ArrayList<Map<String,Object>>();

for (int i = 0; i < names.length; i++) {

Map<String, Object> listItem =new HashMap<String,Object>();

listItem.put("name"names[i]);

listItem.put("describe"describe[i]);

listItem.put("header"headerIDs[i]);

listItems.add(listItem);

}

SimpleAdapter adapter =new SimpleAdapter(this, listItems, R.layout.simple_item,

new String[]{"name","describe","header"}, 

new int[]{R.id.name,R.id.describe,R.id.header});

listView.setAdapter(adapter);

注:1先使用集合封装数据,在绑定adapter

 2simpleadapter

第二个参数是集合名

第三个是单项布局文件(可自定义可选android内定义好的)

第四个是要在集合内获取的数据对象

第五个是单项布局中对象所对应的ID

3、给listview添加监听事件

listView.setOnItemClickListener(new OnItemClickListener() {

 

@Override

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,     //arg2是当前点击的listitemlistitems中的位置,就是第几个item 也可用在name[arg2]表示name中的第几个名字

long arg3) {

if (names[arg2]=="虎头") {

Intent intent=new Intent(MainActivity.this, HuTou.class);

startActivity(intent);

}

// TODO Auto-generated method stub

}

});

三、使用gridview 网格显示图片

<GridView 

    android:id="@+id/grid"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content"

    android:horizontalSpacing="2pt"     //两张相邻图片水平距离

    android:verticalSpacing="2pt"//两张相邻图片垂直距离

    android:numColumns="4"   //每行显示四张图片

    android:gravity="center"

    ></GridView>

 List<Map<String, Object>> listitems= new ArrayList<Map<String,Object>>();

        for (int i = 0; i < imageIDs.length; i++) {

         Map<String, Object> listitem=new HashMap<String, Object>();

         listitem.put("image"imageIDs[i]);

         listitems.add(listitem);

        

}

        imageView=(ImageView) findViewById(R.id.image);

     SimpleAdapter adapter =new SimpleAdapter(this, listitems, R.layout.grid

     new String[]{"image"}, new int[]{R.id.imageView1});

     gridView=(GridView) findViewById(R.id.grid);

     gridView.setAdapter(adapter);

注:1、图片ID建立int型数组imageIDs,新建集合

2gridview 主要步骤和list类似(若设置android:numColumns="1" 则与listview相同,listview是特殊的gridview 

0 0
原创粉丝点击