目的:从一个activity中得到数据,在实现用listview显示数据。这里主要穿插了一个activity之间传递数据的功能。
总共有两个activity,
DataActivity:设置要显示的数据
MtListView:显示数据
DataAvtivity:
package com.example.vlist;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
public class DataActvity extends Activity {
private String TAG="DataActvity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String title12="title123";
String image12="image1";
String datetime12="datetime1";
Log.d(TAG, "数据title------>"+title12);
Intent intent = new Intent();
intent.setClass(DataActvity.this, MyListView.class);
Bundle myBund=new Bundle();
myBund.putString("title12",title12);//左边是键,右边是值。
myBund.putString("image12", image12);
myBund.putString("datetime12",datetime12);
Log.d(TAG, "数据myBund------>"+myBund);
intent.putExtras(myBund);
Log.d(TAG, "数据intent------>"+intent);
startActivity(intent);//启动MyListView
}
}
MyListView:
package com.example.vlist;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import android.app.AlertDialog;
import android.app.ListActivity;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.RelativeLayout;
import android.widget.SimpleAdapter;
import android.widget.TextView;
public class MyListView extends ListActivity {
private List<Map<String, Object>> mData;
private String TAG="MyListView";
public String image;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mData = getData();
MyAdapter adapter = new MyAdapter(this);
setListAdapter(adapter);
}
private List<Map<String, Object>> getData() {
List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
Bundle budle=this.getIntent().getExtras();
Log.d(TAG, "得到的budle------->"+budle);
String title=budle.getString("title12");
image=budle.getString("image12");
String datetime=budle.getString("datetime12");
Log.d(TAG, "得到的title------->"+title);
Log.d(TAG, "得到的image------->"+image);
Log.d(TAG, "得到的datetime------->"+datetime);
Map<String, Object> map = new HashMap<String, Object>();
map.put("title", title);
map.put("info", image);
map.put("img", R.drawable.i1);
list.add(map);
map = new HashMap<String, Object>();
map.put("title","title");
map.put("info", "title");
map.put("img", R.drawable.i2);
list.add(map);
map = new HashMap<String, Object>();
map.put("title", "title");
map.put("info", "title");
map.put("img", R.drawable.i3);
list.add(map);
return list;
}
// ListView 中某项被选中后的逻辑
@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
Log.v("MyListView4-click", (String)mData.get(position).get("title"));
}
/**
* listview中点击按键弹出对话框
*/
public void showInfo(){
Intent intent = new Intent(this,MainActivity.class);
startActivity(intent);
}
public final class ViewHolder{
public ImageView img;
public TextView title;
public TextView info;
public RelativeLayout viewBtn;
}
public class MyAdapter extends BaseAdapter{
private LayoutInflater mInflater;
public MyAdapter(Context context){
this.mInflater = LayoutInflater.from(context);
}
@Override
public int getCount() {
// TODO Auto-generated method stub
return mData.size();
}
@Override
public Object getItem(int arg0) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int arg0) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
if (convertView == null) {
holder=new ViewHolder();
convertView = mInflater.inflate(R.layout.activity_main, null);
holder.img = (ImageView)convertView.findViewById(R.id.img);
holder.title = (TextView)convertView.findViewById(R.id.title);
holder.info = (TextView)convertView.findViewById(R.id.littlemessage);
holder.viewBtn = (RelativeLayout)convertView.findViewById(R.id.relativelayout);
convertView.setTag(holder);
}else {
holder = (ViewHolder)convertView.getTag();
}
holder.img.setBackgroundResource((Integer)mData.get(position).get("img"));
holder.title.setText((String)mData.get(position).get("title"));
holder.info.setText((String)mData.get(position).get("info"));
holder.viewBtn.setOnClickListener(new View.OnClickListener() {//这里增加了点击进入另一个界面
@Override
public void onClick(View v) {
showInfo();
}
});
return convertView;
}
}
}
MainActivity:
package com.example.vlist;
import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.Menu;
public class MainActivity extends Activity {
private String TAG="MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
@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文件:
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="wrap_content"
android:orientation="vertical"
android:padding="6dp" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="29.70"
android:gravity="center_horizontal"
android:orientation="vertical" >
<TextView
android:id="@+id/tv_sendtime"
style="@style/chat_text_date_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<RelativeLayout
android:id="@+id/relativelayout"
android:layout_width="fill_parent"
android:layout_height="320dip"
android:layout_marginLeft="15dp"
android:layout_marginRight="15dip"
android:layout_marginTop="15dp"
android:layout_weight="12.80"
android:background="@drawable/beijing"
android:onClick="MessageView" >
<TextView
android:id="@+id/title"
style="@style/chat_content_date_style"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginTop="16dp"
/>
<TextView
android:id="@+id/datetime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/img"
android:text="time"
android:textColor="#ff000000"
android:textSize="15dip" />
<TextView
android:id="@+id/tv_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/datetime"
android:layout_alignRight="@+id/img"
android:layout_marginRight="14dp"
android:text="time"
android:textSize="20dip" />
<ImageView
android:id="@+id/img"
android:layout_width="150dip"
android:layout_height="150dip"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:background="@drawable/i1"
android:clickable="true"
android:onClick="head_xiaohei" />
<TextView
android:id="@+id/littlemessage"
style="@style/chat_text_name_style"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/img"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp"
android:text="阅读全文" />
<Button
android:id="@+id/yueduquanwen"
android:layout_width="100dip"
android:layout_height="30dip"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:background="#00000000"
android:text="阅读全文"
android:textSize="15dip"
android:textColor="#ff000000" />
</RelativeLayout>
</LinearLayout>
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="完成"
android:textSize="40dip"/>"
</LinearLayout>
这样就可以了,就可以实现从一个activity传递数据,并在另一个activity之中用 listview显示出来。