Android 将setText()从数据库转换为文本视图

Android 将setText()从数据库转换为文本视图,android,eclipse,sqlite,textview,onitemclicklistener,Android,Eclipse,Sqlite,Textview,Onitemclicklistener,我想查看文本并将其设置为文本视图,当我单击列表视图中的项目时,它将启动新活动,我想将数据库中文本视图中的文本设置为该活动 我该怎么做???? 我试着去做,但根本没用 我将在我的侦听器中使用游标和意图,对吗 有人能告诉我怎么做吗 请帮忙!谢谢 package com.example.test; import java.util.ArrayList; import android.app.Activity; import android.app.AlertDialog; im

我想查看文本并将其设置为文本视图,当我单击列表视图中的项目时,它将启动新活动,我想将数据库中文本视图中的文本设置为该活动

我该怎么做???? 我试着去做,但根本没用

我将在我的侦听器中使用游标和意图,对吗

有人能告诉我怎么做吗

请帮忙!谢谢

 package com.example.test;


  import java.util.ArrayList;

  import android.app.Activity;
  import android.app.AlertDialog;
  import android.content.DialogInterface;
  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.AdapterView;
 import android.widget.AdapterView.OnItemClickListener;
 import android.widget.AdapterView.OnItemLongClickListener;
 import android.widget.ListView;
 import android.widget.TextView;
 import android.widget.Toast;

 public class DisplayActivity extends Activity {

private DbHelper mHelper;
private SQLiteDatabase dataBase;

private ArrayList<String> bookId = new ArrayList<String>();
private ArrayList<String> book_Name = new ArrayList<String>();
private ArrayList<String> book_Author = new ArrayList<String>();
private ArrayList<String> book_Info = new ArrayList<String>();
private ArrayList<String> book_Isbn = new ArrayList<String>();
private ArrayList<String> book_Copy = new ArrayList<String>();
public static String bNAME="bname";
public static String bAUTHOR="bauthor";
public static String bISBN="bisbn";
public static String bCOPY="bcopy";
public static String bINFO="binfo";
public static String bID="ID";
private ListView userList;
private TextView t1,t2,t3,t4,t5;
private AlertDialog.Builder build;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.display_activity);

    t1=(TextView) findViewById(R.id.name);
    t2=(TextView) findViewById(R.id.author);
    t3=(TextView) findViewById(R.id.isbn);
    t4=(TextView) findViewById(R.id.copy);
    t5=(TextView) findViewById(R.id.info);


    userList = (ListView) findViewById(R.id.List);

    mHelper = new DbHelper(this);

    userList.setOnItemClickListener(new OnItemClickListener() {

        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {


                                //what I should write here ?????
            }


@Override
protected void onResume() {
    displayData();
    super.onResume();
}

/**
 * displays data from SQLite
 */
private void displayData() {
    dataBase = mHelper.getWritableDatabase();
    Cursor mCursor = dataBase.rawQuery("SELECT * FROM "
            + DbHelper.TABLE_NAME, null);

    bookId.clear();
    book_Name.clear();
    book_Author.clear();
    book_Isbn.clear();
    book_Copy.clear();
    book_Info.clear();
    if (mCursor.moveToFirst()) {
        do {
            bookId.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_ID)));
            book_Name.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_NAME)));
            book_Author.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_AUTHOR)));
            book_Isbn.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_ISBN)));
            book_Copy.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_COPIES)));
            book_Info.add(mCursor.getString(mCursor.getColumnIndex(DbHelper.KEY_INFO)));

        } while (mCursor.moveToNext());
    }
    DisplayAdapter disadpt = new DisplayAdapter(DisplayActivity.this,bookId, book_Name);
    userList.setAdapter(disadpt);
    mCursor.close();
}



  }
DisplayAdapter.java

    package com.example.test;


  import java.util.ArrayList;

  import android.content.Context;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.BaseAdapter;
  import android.widget.TextView;

  public class DisplayAdapter extends BaseAdapter {
private Context mContext;
private ArrayList<String> id;
private ArrayList<String> bookName;
//private ArrayList<String> lastName;


public DisplayAdapter(Context c,ArrayList<String> id,ArrayList<String> bname) {
    this.mContext = c;

    this.id = id;
    this.bookName = bname;
    //this.lastName = lname;
}

public int getCount() {
    // TODO Auto-generated method stub
    return id.size();
}

public Object getItem(int position) {
    // TODO Auto-generated method stub
    return null;
}

public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}

public View getView(int pos, View child, ViewGroup parent) {
    Holder mHolder;
    LayoutInflater layoutInflater;
    if (child == null) {
        layoutInflater = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        child = layoutInflater.inflate(R.layout.listcell, null);
        mHolder = new Holder();
        mHolder.txt_id = (TextView) child.findViewById(R.id.txt_id);
        mHolder.txt_bName = (TextView) child.findViewById(R.id.txt_bname);
        //mHolder.txt_lName = (TextView) child.findViewById(R.id.txt_lName);
        child.setTag(mHolder);
    } else {
        mHolder = (Holder) child.getTag();
    }
    mHolder.txt_id.setText(id.get(pos));
    mHolder.txt_bName.setText(bookName.get(pos));
    //mHolder.txt_lName.setText(lastName.get(pos));

    return child;
}

public class Holder {
    TextView txt_id;
    TextView txt_bName;

}

 }
您不必再次使用游标,因为您已经用ArrayList填充了适配器,并且ArrayList包含所有必需的数据,例如book_id、book_Name

请尝试以下代码

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
    String bookName = book_Name.get(arg2); //arg2 is the position where clicked
    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    intent.putExtra("Book_Name", bookName);
    startActivity(intent); 
}

你也可以发布你的DisplayAdapter类吗?@harshingal我刚刚发布了它。。。
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,long arg3) {
    String bookName = book_Name.get(arg2); //arg2 is the position where clicked
    Intent intent = new Intent(MainActivity.this,SecondActivity.class);
    intent.putExtra("Book_Name", bookName);
    startActivity(intent); 
}
 protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.second_activity);
TextView tv1 = (TextView)findViewById(R.id.textView1);

Bundle bundle = getIntent().getExtras();
    if(bundle != null) {
        tv1.setText(bundle.getString("Book_Name"));
}
}