package com.android.test;import java.util.List;
import java.util.Map;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class ResultActivity extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
ListView listView = (ListView)findViewById(R.id.lshow);
Intent intent = getIntent();
//获取该intent所携带的数据
Bundle data = intent.getExtras();
//从Bundle数据包中取出数据
@SuppressWarnings("unchecked")
List<Map<String,String>> list = (List<Map<String,String>>)data.getSerializable("data");
if(list == null){
Toast.makeText(ResultActivity.this, "list为null!", 8000).show();
}
//将List封装成SimpleAdapter
SimpleAdapter adapter = new SimpleAdapter(ResultActivity.this,list,R.layout.popup,new String[]{"word","detail"},new int[]{R.id.pword,R.id.pdetail});
//填充ListView
listView.setAdapter(adapter);
}
}
package com.android.test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class Dict extends Activity {
MyDatabaseHelper dbHelper;
Button insert = null;
Button search = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.mydatabase);
//创建MyDatabaseHelper对象,指定数据库版本为1,此处使用相对路径即可
//数据库文件会自动保存在程序的数据文件夹的databases目录下
dbHelper = new MyDatabaseHelper(this,"myDict.db3",1);
insert = (Button)findViewById(R.id.insert);
search = (Button)findViewById(R.id.search);
insert.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//获取用户输入
String word = ((EditText)findViewById(R.id.word)).getText().toString();
String detail = ((EditText)findViewById(R.id.detail)).getText().toString();
//插入生词记录
insertData(dbHelper.getReadableDatabase(),word,detail);
//显示提示信息
Toast.makeText(Dict.this, "添加生词成功!", 8000).show();
}
});
search.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//获取用户输入
String key = ((EditText)findViewById(R.id.key)).getText().toString();
//执行查询
String sql = "select * from dict where word like ? or detail like ?";
Cursor cursor = dbHelper.getReadableDatabase().rawQuery(sql, new String[]{"%"+key+"%","%"+key+"%"});
//创建一个Bundle对象
Bundle data = new Bundle();
data.putSerializable("data", converCursorToList(cursor));
//创建一个Intent
Intent intent = new Intent(Dict.this,ResultActivity.class);
//启动Activity
startActivity(intent);
}
});
}
protected ArrayList<Map<String,String>> converCursorToList(Cursor cursor){
ArrayList<Map<String,String>> result = new ArrayList<Map<String,String>>();
//遍历Cursor结果集
while(cursor.moveToNext()){
//将结果集中的数据存入ArrayList中
Map<String , String> map = new HashMap<String , String>();
//取出查询记录中第2列,第3列的值
map.put("word", cursor.getString(1));
map.put("detail", cursor.getString(2));
result.add(map);
}
return result;
}
private void insertData(SQLiteDatabase db,String word,String detail){
//执行插入语句
db.execSQL("insert into dict values(null,?,?)",new String[]{word,detail});
}
@Override
public void onDestroy(){
super.onDestroy();
//退出程序时关闭MyDatabaseHelper里的SQLiteDataBase
if(dbHelper!=null){
dbHelper.close();
}
}
}
package com.android.test;import java.util.List;
import java.util.Map;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class ResultActivity extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
ListView listView = (ListView)findViewById(R.id.lshow);
Intent intent = getIntent();
//获取该intent所携带的数据
Bundle data = intent.getExtras();
//从Bundle数据包中取出数据
@SuppressWarnings("unchecked")
List<Map<String,String>> list = (List<Map<String,String>>)data.getSerializable("data");
if(list == null){
Toast.makeText(ResultActivity.this, "list为null!", 8000).show();
}
//将List封装成SimpleAdapter
SimpleAdapter adapter = new SimpleAdapter(ResultActivity.this,list,R.layout.popup,new String[]{"word","detail"},new int[]{R.id.pword,R.id.pdetail});
//填充ListView
listView.setAdapter(adapter);
}
}
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/word"
/>
</TableRow>
<TableRow>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/detail"
/>
</TableRow>
<TableRow>
<Button android:text="添加生词"
android:id="@+id/insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</TableRow>
<TableRow>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/key"
/>
</TableRow>
<TableRow>
<Button android:text="查找"
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</TableRow>
</TableLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/line"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@+id/lshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/pword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/pdetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
</ListView></LinearLayout>源代码,可以添加,一查找跳到另一个ResultActivity中就会报错
import java.util.Map;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class ResultActivity extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
ListView listView = (ListView)findViewById(R.id.lshow);
Intent intent = getIntent();
//获取该intent所携带的数据
Bundle data = intent.getExtras();
//从Bundle数据包中取出数据
@SuppressWarnings("unchecked")
List<Map<String,String>> list = (List<Map<String,String>>)data.getSerializable("data");
if(list == null){
Toast.makeText(ResultActivity.this, "list为null!", 8000).show();
}
//将List封装成SimpleAdapter
SimpleAdapter adapter = new SimpleAdapter(ResultActivity.this,list,R.layout.popup,new String[]{"word","detail"},new int[]{R.id.pword,R.id.pdetail});
//填充ListView
listView.setAdapter(adapter);
}
}
package com.android.test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;public class Dict extends Activity {
MyDatabaseHelper dbHelper;
Button insert = null;
Button search = null;
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.mydatabase);
//创建MyDatabaseHelper对象,指定数据库版本为1,此处使用相对路径即可
//数据库文件会自动保存在程序的数据文件夹的databases目录下
dbHelper = new MyDatabaseHelper(this,"myDict.db3",1);
insert = (Button)findViewById(R.id.insert);
search = (Button)findViewById(R.id.search);
insert.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//获取用户输入
String word = ((EditText)findViewById(R.id.word)).getText().toString();
String detail = ((EditText)findViewById(R.id.detail)).getText().toString();
//插入生词记录
insertData(dbHelper.getReadableDatabase(),word,detail);
//显示提示信息
Toast.makeText(Dict.this, "添加生词成功!", 8000).show();
}
});
search.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
//获取用户输入
String key = ((EditText)findViewById(R.id.key)).getText().toString();
//执行查询
String sql = "select * from dict where word like ? or detail like ?";
Cursor cursor = dbHelper.getReadableDatabase().rawQuery(sql, new String[]{"%"+key+"%","%"+key+"%"});
//创建一个Bundle对象
Bundle data = new Bundle();
data.putSerializable("data", converCursorToList(cursor));
//创建一个Intent
Intent intent = new Intent(Dict.this,ResultActivity.class);
//启动Activity
startActivity(intent);
}
});
}
protected ArrayList<Map<String,String>> converCursorToList(Cursor cursor){
ArrayList<Map<String,String>> result = new ArrayList<Map<String,String>>();
//遍历Cursor结果集
while(cursor.moveToNext()){
//将结果集中的数据存入ArrayList中
Map<String , String> map = new HashMap<String , String>();
//取出查询记录中第2列,第3列的值
map.put("word", cursor.getString(1));
map.put("detail", cursor.getString(2));
result.add(map);
}
return result;
}
private void insertData(SQLiteDatabase db,String word,String detail){
//执行插入语句
db.execSQL("insert into dict values(null,?,?)",new String[]{word,detail});
}
@Override
public void onDestroy(){
super.onDestroy();
//退出程序时关闭MyDatabaseHelper里的SQLiteDataBase
if(dbHelper!=null){
dbHelper.close();
}
}
}
package com.android.test;import java.util.List;
import java.util.Map;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;public class ResultActivity extends Activity {
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.popup);
ListView listView = (ListView)findViewById(R.id.lshow);
Intent intent = getIntent();
//获取该intent所携带的数据
Bundle data = intent.getExtras();
//从Bundle数据包中取出数据
@SuppressWarnings("unchecked")
List<Map<String,String>> list = (List<Map<String,String>>)data.getSerializable("data");
if(list == null){
Toast.makeText(ResultActivity.this, "list为null!", 8000).show();
}
//将List封装成SimpleAdapter
SimpleAdapter adapter = new SimpleAdapter(ResultActivity.this,list,R.layout.popup,new String[]{"word","detail"},new int[]{R.id.pword,R.id.pdetail});
//填充ListView
listView.setAdapter(adapter);
}
}
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableRow>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/word"
/>
</TableRow>
<TableRow>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/detail"
/>
</TableRow>
<TableRow>
<Button android:text="添加生词"
android:id="@+id/insert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"></Button>
</TableRow>
<TableRow>
<EditText
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/key"
/>
</TableRow>
<TableRow>
<Button android:text="查找"
android:id="@+id/search"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</TableRow>
</TableLayout>
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/line"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@+id/lshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/pword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/pdetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
</ListView></LinearLayout>源代码,可以添加,一查找跳到另一个ResultActivity中就会报错
解决方案 »
- NEC平板开不了机,急求助
- 老大叫我看安卓4.0.1源码,我都不知道怎么开始,怎么办啊。。。。。。
- android通过无线局域网访问pc机上tomcat服务器的资源
- 如何在TabHost下添加ListView
- 求助,大家给看看
- ListView的Item里有Checkbox的时候怎么让ItemClickListener起作用?
- Android怎样通过蓝牙或wifi通信
- 求解决
- com.android.camera.action.CROP在4.4系统上截图失效
- 主机udp广播同时接收多客户机的信息
- 求助!!自定义垂直的SeekBar,布局问题
- 如何判断 findViewById(R.id.img1) 是否有此值或有此控件,在线等
<!-- 制定该Android应用的包名
该包名可用于唯一的表示该应用 -->
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.test"
android:versionCode="1"
android:versionName="1.0">
<!-- 制定 Android应用标签,图标 -->
<application android:icon="@drawable/icon" android:label="@string/app_name">
<!-- 定义Android应用的一个组件:Activity
该Activity的类为HelloAndroid,并指定该 Activity的标签-->
<activity android:name="Dict"
android:label="@string/app_name">
<intent-filter>
<!-- 指定该Activity是程序的入口 -->
<action android:name="android.intent.action.MAIN" />
<!-- 指定加载该应用时运行该Activity -->
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="ResultActivity"
android:label="生词"
>
</activity>
</application>
</manifest> 还有这个
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/line"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView
android:id="@+id/lshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<TextView
android:id="@+id/pword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/pdetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
</LinearLayout>
import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;public class WelcomeActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main); Button start = (Button) findViewById(R.id.start);
start.setOnClickListener(new OnClickListener()
{
@Override
public void onClick(View v)
{ List<Map<String, String>> list = new ArrayList<Map<String, String>>();
Map<String, String> map = new HashMap<String, String>();
map.put("no1", "哈哈");
list.add(map);
Intent i = new Intent(WelcomeActivity.this,
ResultActivity.class);
Bundle b = new Bundle();
b.putSerializable("data", (Serializable) list);
i.putExtras(b);
startActivity(i);
}
});
}
}public class ResultActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.main2);
TextView show = (TextView) findViewById(R.id.show); Bundle data = getIntent().getExtras();
List<Map<String, String>> list = (List<Map<String, String>>) data
.getSerializable("data");
if (list != null)
{
HashMap<String, String> map = (HashMap<String, String>) list.get(0);
show.setText(map.get("no1"));
}
else
{
Toast.makeText(ResultActivity.this, "NULL", Toast.LENGTH_SHORT);
}
}}
楼主,我这样是可以传过去的哟,你自己看下自己的代码吧。
Bundle data = intent.getExtras();
//从Bundle数据包中取出数据
@SuppressWarnings("unchecked")
List<Map<String,String>> list = (List<Map<String,String>>)data.getSerializable("data");
if(list == null){
Toast.makeText(ResultActivity.this, "list为null!", 8000).show();
}
//将List封装成SimpleAdapter
SimpleAdapter adapter = new SimpleAdapter(ResultActivity.this,list,R.layout.popup,new String[]{"word","detail"},new int[]{R.id.pword,R.id.pdetail});
//填充ListView
listView.setAdapter(adapter);
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/line"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ListView <!-- 这个ListView去掉 -->
android:id="@+id/lshow"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:id="@+id/pword"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
<TextView
android:id="@+id/pdetail"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
</ListView></LinearLayout>
将上面那个ListView去掉,popup.xml代表每一行的格式。
应该定义在它应该被显示的地方,它里面不需要写其它东西,里面的内容是你在java代码里通过setAdapter放置进去的。
终于解决了 原来是这样 还要请教一下 之前package com.android.test;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;public class SimpleAdapterTest extends Activity {
private String[] names = new String[]{"李白","杜甫","李清照"};
private int[] imgs = new int[]{R.drawable.one,R.drawable.two,R.drawable.three};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.simpleadapter);
//创建一个List集合,List集合的元素是Map
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("header", imgs[i]);
listItem.put("personName", names[i]);
listItems.add(listItem);
}
//创建一个SimpleAdapter
SimpleAdapter simpleAdapter = new SimpleAdapter(this
,listItems
,R.layout.simpleadapter
,new String[]{"personName","header"}
,new int[]{R.id.name,R.id.header});
ListView list = (ListView)findViewById(R.id.mylist);
//为ListView设置Adapter
list.setAdapter(simpleAdapter);
}
}
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<!-- 定义一个List -->
<ListView
android:id="@+id/mylist"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<!-- 定义一个ImageView,用于作为列表项的一部分 -->
<ImageView
android:id="@+id/header"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
/>
<!-- 定义一个TextView,用于作为列表项的一部分 -->
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="16dp"
android:gravity="center_vertical"
android:paddingLeft="10dp"
/>
</LinearLayout>之前这样写的话是可以显示的,为什么后来传数据的这个不行呢