我想在点击listview打开一个新的页面时
并且把listview中的名叫number的textview里的值传给到要打开的activity中。
求具体方法,最好给个代码,谢谢
通过Bundle传值,intent.putExtra(name, value)
package xiaohang.zhimeng;
import java.util.ArrayList;
import java.util.HashMap;
import android.app.Activity;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.Toast;
public class Activity01 extends Activity {
SQLiteDatabase mDb;
SQLiteDatabaseDao dao;
// 存储数据的数组列表
ArrayList> listData;
// 适配器
SimpleAdapter listItemAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
dao = new SQLiteDatabaseDao();
ListView list = (ListView) findViewById(R.id.list_items);
listItemAdapter = new SimpleAdapter(Activity01.this,
listData,// 数据源
R.layout.mylayout,// ListItem的XML实现
// 动态数组与ImageItem对应的子项
new String[] { "name" },
// ImageItem的XML文件里面的一个ImageView,两个TextView ID
new int[] { R.id.username});
list.setAdapter(listItemAdapter);
}
class SQLiteDatabaseDao {
public SQLiteDatabaseDao() {
mDb = openOrCreateDatabase("shuiguo.db",SQLiteDatabase.CREATE_IF_NECESSARY, null);
//初始化创建表
createTable(mDb, "shuiguo");
//初始化获取所有数据表数据
getAllData("shuiguo");
}
}
public void createTable(SQLiteDatabase mDb, String table) {
try {
mDb.execSQL("create table if not exists shuiguo("
+ "name varchar primary key,"
+ "intro varchar,"
+ "effect varchar,choose varchar)");
} catch (SQLException e) {
Toast.makeText(getApplicationContext(), "数据表创建失败",
Toast.LENGTH_LONG).show();
}
}
// 查询所有数据
public void getAllData(String table) {
Cursor c = mDb.rawQuery("select name from " + table, null);
int columnsSize = c.getColumnCount();
listData = new ArrayList<HashMap<String, Object>>();
// 获取表的内容
while (c.moveToNext()) {
HashMap<String, Object> map = new HashMap<String, Object>();
for (int i = 0; i < columnsSize; i++) {
map.put("name", c.getString(0));
}
listData.add(map);
}
}
}
package xiaohang.zhimeng;
import android.app.Activity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.TextView;
public class Activity02 extends Activity{
private TextView resultView;
//private TextView tv;
MySQLiteHelper myHelper;
@Override
protected void onCreate(Bundle savedInstanceState){
//TODD Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.result);
resultView =(TextView)findViewById(R.id.result);
myHelper = new MySQLiteHelper(this, "shuiguo.db", null, 1);
String result = queryData(myHelper);
resultView.setTextColor(Color.RED);
resultView.setTextSize(20.0f);
resultView.setText(result);
}
public String queryData(MySQLiteHelper myHelper){
String result = "";
//获得数据库对象
SQLiteDatabase db = myHelper.getReadableDatabase();
//得到中Intent对象的值
Intent intent =getIntent();
String result1 =intent.getStringExtra("one");
System.out.println(result1);
//查询表中的数据
Cursor cursor = db.query("shuiguo",null, null,null, null, null, null, null);
//获取name列的索引
int nameIndex = cursor.getColumnIndex("name");
//获取level列的索引
/*int introIndex = cursor.getColumnIndex("intro");
int effectIndex =cursor.getColumnIndex("effect");
int chooseIndex =cursor.getColumnIndex("choose");*/
for (cursor.moveToFirst();!(cursor.isAfterLast());cursor.moveToNext()) {
String intro=cursor.getString(1);
String effect=cursor.getString(2);
String choose=cursor.getString(3);
System.out.println(intro+":"+effect);
result = result + cursor.getString(nameIndex)+ "\t\t";
result = result +intro+" \n";
result = result +effect+" \n";
result = result +choose+" \n";
}
cursor.close();//关闭结果集
db.close();//关闭数据库对象
return result;
}
}
package xiaohang.zhimeng;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
public class MySQLiteHelper extends SQLiteOpenHelper{
//调用父类构造器
public MySQLiteHelper(Context context, String name, CursorFactory factory,
int version) {
super(context, name, factory, version);
}
/**
* 当数据库首次创建时执行该方法,一般将创建表等初始化操作放在该方法中执行.
* 重写onCreate方法,调用execSQL方法创建表
* */
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL("create table if not exists shuiguo("
+ "name varchar primary key,"
+ "intro varchar,"
+ "effect varchar,choose varchar)");
}
//当打开数据库时传入的版本号与当前的版本号不同时会调用该方法
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
通过Bundle传值,intent.putExtra(name, value)