gpt4 book ai didi

java - 如何通过单击增加数组位置的按钮来在 textView 上的数组中设置文本

转载 作者:太空宇宙 更新时间:2023-11-04 13:38:09 25 4
gpt4 key购买 nike

拜托,我正在努力让这段代码正常工作。我有一组字符串,我想仅在单击按钮时一次在 TextView 中显示一个。也就是说,当用户单击按钮时,将获取并显示下一个数组位置中的下一个字符串。这就是我所拥有的。请我需要你的帮助。

public class  MainActivity extends Activity {

TextView tv ;
Button next ;
int j = 0 ;
String[] allQuestions ;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

MySQLiteHelper db = new MySQLiteHelper(this) ;



db.addValues() ;

allQuestions = db.getQuestions() ; //This is the array i want to fetch the data from

tv = (TextView) findViewById(R.id.question_id) ;
next = (Button) findViewById(R.id.next) ;

do{
tv.setText(allQuestions[j]) ;

next.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
j++ ;
tv.setText(allQuestions[j]) ;
}
}) ;

}
while(j < allQuestions.length) ;

}

db.allQuestions 方法位于此处

 public String[] getQuestions(){

String sql = "SELECT question FROM Questions" ;

SQLiteDatabase db = this.getReadableDatabase() ;

Cursor cursor = db.rawQuery(sql, null) ;

if(cursor == null){
return null ;
}
else{
String[] allQuestions = new String[cursor.getCount()] ;

for(int i = 0 ; i < cursor.getCount() ; i++){
cursor.moveToNext() ;
String question = cursor.getString(cursor.getColumnIndex("question")) ;
allQuestions[i] = question ;
}

return allQuestions;
}


}

数据库已创建,并添加了一些虚拟值。感谢您提前提供的帮助。

最佳答案

试试这个:

 next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(++j >= allQuestions.length){
j = 0;
}
tv.setText(allQuestions[j]) ;
}
}) ;

并删除 do{}while(); 循环。

您当前的代码不起作用,因为 setOnClickListener(...) 不会阻止执行,直到调用 onClick(...)(并且 j 递增),这意味着 j 不会递增并且循环继续进行(阻止 UI 线程)。

关于java - 如何通过单击增加数组位置的按钮来在 textView 上的数组中设置文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31499499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com