Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 将数据库中的数据显示到textview中_Android_Database - Fatal编程技术网

Android 将数据库中的数据显示到textview中

Android 将数据库中的数据显示到textview中,android,database,Android,Database,我试图在单击“下一步”按钮时将数据库中的随机数据显示到两个文本视图(TextView1显示名称,TextView2显示电话号码),但我不知道如何才能做到这一点。请帮忙! 我正在使用一些类和xml文件(我在androidhive.info中引用): AndroidSQLiteTutorialActivity.java类: public class Contact { //private variables int _id; String _name; St

我试图在单击“下一步”按钮时将数据库中的随机数据显示到两个文本视图(TextView1显示名称,TextView2显示电话号码),但我不知道如何才能做到这一点。请帮忙! 我正在使用一些类和xml文件(我在androidhive.info中引用):

AndroidSQLiteTutorialActivity.java类:

    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());
    }
};