嗨,我正在制作简单的报价应用程序,显示报价。我有报价在sqlite数据库。我有两个按钮"next"one_answers"previous"当用户点击next时,下一个引号应该显示,当点击previous时,上一个引号应该显示。数据库工作良好,但我被困在如何改变textView的文本。我尝试了一些东西,但它们不能正常工作。有什么建议或帮助吗?引用段子、谚语等
首先获取所有的引号并存储到数组列表或任何等效对象中现在使用一个计数器对象来跟踪当前位置,如果你得到的引号大于等于1,则将其初始化为0
现在在下一个按钮上检查第一个计数器值等于数组列表的大小然后什么都不做否则增加1并从数组列表中获取下一个引号
if(counter==-1)
return;
if(counter==array.size()-1)
return
counter++;
yourtextview.setText(array.get(counter));
对前面的计数器执行相同的操作,在这个计数器中——而不是counter++
编辑没有数组列表对象和计数器对象
使用moveNext()和movePrevious()检查光标,就像下次检查
if(cursor.moveNext())
yourtextview.setText(coursor.getString(yourcolumnindex));
和前面的
if(cursor.movePrevious())
yourtextview.setText(coursor.getString(yourcolumnindex));
看看http://developer.android.com/reference/android/widget/TextView.html
在按钮上使用onClickListeners。当用户按下按钮时,您从数据库中获取适当的文本并显示它,例如使用setText(CharSequence text)
修改textview的文本:
textview.setText("your text");
如果您在更改文本时遇到任何异常,请尝试在handler
的帮助下完成。
我正在尝试这是工作,但当我点击下一步以前的文本不会消失。该怎么办?
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
tv=(TextView)findViewById(R.id.text);
next=(Button)findViewById(R.id.next);
back=(Button)findViewById(R.id.back);
next.setOnClickListener(this);
back.setOnClickListener(this);
try {
db=new DbH(this);
} catch (IOException e2) {
e2.printStackTrace();
}
try {
db.createdatabase();
} catch (IOException e) {
e.printStackTrace();
}
db.opendatabase();
cur=db.data();
cur.moveToFirst();
//int i=0;
tv.append(cur.getString(1));
cur.moveToNext();
//cur.close ();
}@Overridepublic void onClick(View v) {
switch(R.id.next)
{
case R.id.next :
cur.moveToNext();
tv.append(""+cur.getString(1));
break;
case R.id.back:
{
cur.moveToPrevious();
tv.append(""+cur.getString(1));
break;
}
}