Android 将数据库中的数据显示到textview中
我试图在单击“下一步”按钮时将数据库中的随机数据显示到两个文本视图(TextView1显示名称,TextView2显示电话号码),但我不知道如何才能做到这一点。请帮忙! 我正在使用一些类和xml文件(我在androidhive.info中引用): AndroidSQLiteTutorialActivity.java类:Android 将数据库中的数据显示到textview中,android,database,Android,Database,我试图在单击“下一步”按钮时将数据库中的随机数据显示到两个文本视图(TextView1显示名称,TextView2显示电话号码),但我不知道如何才能做到这一点。请帮忙! 我正在使用一些类和xml文件(我在androidhive.info中引用): AndroidSQLiteTutorialActivity.java类: public class Contact { //private variables int _id; String _name; St
public class Contact {
//private variables
int _id;
String _name;
String _phone_number;
// Empty constructor
public Contact(){
}
// constructor
public Contact(int id, String name, String _phone_number){
this._id = id;
this._name = name;
this._phone_number = _phone_number;
}
// constructor
public Contact(String name, String _phone_number){
this._name = name;
this._phone_number = _phone_number;
}
// getting ID
public int getID(){
return this._id;
}
// setting id
public void setID(int id){
this._id = id;
}
// getting name
public String getName(){
return this._name;
}
// setting name
public void setName(String name){
this._name = name;
}
// getting phone number
public String getPhoneNumber(){
return this._phone_number;
}
// setting phone number
public void setPhoneNumber(String phone_number){
this._phone_number = phone_number;
}
}
public class AndroidSQLiteTutorialActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DatabaseHandler db = new DatabaseHandler(this);
/**
* CRUD Operations
* */
// Inserting Contacts
Log.d("Insert: ", "Inserting ..");
db.addContact(new Contact("Ravi", "9100000000"));
db.addContact(new Contact("Srinivas", "9199999999"));
db.addContact(new Contact("Tommy", "9522222222"));
db.addContact(new Contact("Karthik", "9533333333"));
// Reading all contacts
Log.d("Reading: ", "Reading all contacts..");
List<Contact> contacts = db.getAllContacts();
for (Contact cn : contacts) {
String log = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
// Writing Contacts to log
Log.d("Name: ", log);
}
}
private void contactList() {
//set the question text from current question
DatabaseHandler db = new DatabaseHandler(this);
/**
* CRUD Operations
* */
// Inserting Contacts
Log.d("Insert: ", "Inserting ..");
db.addContact(new Contact("Ravi", "9100000000"));
db.addContact(new Contact("Srinivas", "9199999999"));
db.addContact(new Contact("Tommy", "9522222222"));
db.addContact(new Contact("Karthik", "9533333333"));
// Reading all contacts
Log.d("Reading: ", "Reading all contacts..");
List<Contact> contacts = db.getAllContacts();
TextView name = (TextView) findViewById(R.id.textView1);
for (Contact cn : contacts) {
String name1 = "Id: "+cn.getID()+" ,Name: " + cn.getName() + " ,Phone: " + cn.getPhoneNumber();
// Writing Contacts to log
Log.d("Name: ", name1);
}
}
}
<?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="fill_parent"
android:orientation="vertical"
android:background="@android:color/white" >
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Large Text"
android:textAppearance="?android:attr/textAppearanceLarge" />
<Button
android:id="@+id/next"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button" />
</LinearLayout>
public类AndroidSQLiteTutorialActivity扩展活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DatabaseHandler db=新的DatabaseHandler(此);
/**
*积垢作业
* */
//插入联系人
日志d(“插入:”,“插入..”);
db.addContact(新联系人(“Ravi”,“9100000000”));
db.addContact(新联系人(“Srinivas”、“919999999”);
db.addContact(新联系人(“Tommy”,“952222”));
db.addContact(新联系人(“Karthik”、“9533333”);
//读取所有联系人
日志d(“读取:”,“读取所有联系人…”);
List contacts=db.getAllContacts();
用于(联系人cn:联系人){
字符串log=“Id:”+cn.getID()+”,名称:“+cn.getName()+”,电话:“+cn.getPhoneNumber()”;
//将联系人写入日志
Log.d(“名称:”,Log);
}
}
私有无效联系人列表(){
//从当前问题设置问题文本
DatabaseHandler db=新的DatabaseHandler(此);
/**
*积垢作业
* */
//插入联系人
日志d(“插入:”,“插入..”);
db.addContact(新联系人(“Ravi”,“9100000000”));
db.addContact(新联系人(“Srinivas”、“919999999”);
db.addContact(新联系人(“Tommy”,“952222”));
db.addContact(新联系人(“Karthik”、“9533333”);
//读取所有联系人
日志d(“读取:”,“读取所有联系人…”);
List contacts=db.getAllContacts();
TextView名称=(TextView)findViewById(R.id.textView1);
用于(联系人cn:联系人){
字符串name1=“Id:”+cn.getID()+”,名称:“+cn.getName()+”,电话:“+cn.getPhoneNumber()”;
//将联系人写入日志
Log.d(“名称:”,名称1);
}
}
}
您的按钮中需要一个OnClickListener
。您可以使用android:onClick
属性在XML中声明它
这一点在中有详细说明。您需要为按钮设置以在按钮单击时执行某些操作,并使用计数器变量在按钮单击时显示下一个值,如下所示:
List<Contact> contacts = db.getAllContacts();
TextView name = (TextView) findViewById(R.id.textView1);
Button buttonnext = (Button) findViewById(R.id.next);
buttonnext.setOnClickListener(onclickListener);
int listcounter=0;
private OnClickListener onclickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
if(listcounter<contacts.size()){
Contact cn=contacts.get(listcounter);
name.setText("");
name.append("Id: "+cn.getID());
name.append(" ,Name: "+cn.getName());
name.append(",Phone: "+cn.getPhoneNumber());
listcounter++;
}
else{
//Reset the Counter here
listcounter = 0;
}
}
};
List contacts=db.getAllContacts();
TextView名称=(TextView)findViewById(R.id.textView1);
Button buttonnext=(Button)findViewById(R.id.next);
buttonnext.setOnClickListener(onclickListener);
int listcounter=0;
私有OnClickListener OnClickListener=新OnClickListener(){
@凌驾
公共void onClick(最终视图v){
如果(listcounter尝试以下操作:
Button buttonnext = (Button) findViewById(R.id.next);
buttonnext.setOnClickListener(onclickListener);
private OnClickListener onclickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
int randInt = new Random().nextInt(contacts.size()) + 1;
Contact cn=contacts.get(randInt);
name.setText("Id: "+cn.getID()+" ,Name: " + cn.getName() + "
,Phone: " + cn.getPhoneNumber());
}
};
那里有很多代码。到目前为止,什么在起作用?你遇到的确切问题是什么?你需要从数据库中获取数据。如果还没有,则转换为字符串。然后设置文本视图的文本`是否起作用?我可能错过了它,但我甚至没有看到你的下一个按钮传感器的onClick
侦听器ry,我不知道它是如何工作的,所以我无法为您的下一个按钮编写onClick listener:(但有什么方法可以帮助我从数据库中获取数据?当我将此代码放入AndroidSqliteTootorialActivity类中时,出现了一些错误:“字符串文字没有用双引号正确关闭”@mrZ:k发布您的新代码log@mrZ:尝试使用name.setText(cn.getName());
检查是否在textview中添加了值?很抱歉,它仍然存在问题,您可以修复它吗,请@mrZ:从您的更新或工作代码开始。当我将此代码放入AndroidSqliteTootorialActivity类时,出现了一些错误:“字符串文字未正确地用双引号关闭”
Button buttonnext = (Button) findViewById(R.id.next);
buttonnext.setOnClickListener(onclickListener);
private OnClickListener onclickListener = new OnClickListener() {
@Override
public void onClick(final View v) {
int randInt = new Random().nextInt(contacts.size()) + 1;
Contact cn=contacts.get(randInt);
name.setText("Id: "+cn.getID()+" ,Name: " + cn.getName() + "
,Phone: " + cn.getPhoneNumber());
}
};