在android中使用setText时出错

时间:2016-12-13 17:35:00

标签: java android sqlite

我在使用代码中的值时遇到错误。它说无法解析符号setText。

enter image description here

protected void showRecords() {
            if(c!=null && c.moveToFirst()){
                do{
                    String Starter = c.getString(1);
                    Starter.setText=c.getString(1);
                    String MainCourse = c.getString(1);
                    MainCource.setText(MainCourse);
                    String Dessert = c.getString(1);
                    Dessert.setText=c.getString(1);

                }while(c.moveToNext());
            }

2 个答案:

答案 0 :(得分:0)

如果Starter是一个字符串,那么您将直接分配给它: Starter = c.getString(1);

此外,您应遵循Java命名约定。变量不应以大写字母开头,以便将它们与Type区分开来。所以你应该这样声明:

String starter = c.getString(1);

一旦你这样做了。没有理由在上面调用setText()。除非您有一些要设置值的组件(不是字符串)。

答案 1 :(得分:0)

好吧,我发现你没有得到我们的建议。所以让我一步一步解释。这是你的代码:

String Starter = c.getString(1);
Starter.setText=c.getString(1);
String MainCourse = c.getString(1);
MainCource.setText(MainCourse);
String Dessert = c.getString(1);
Dessert.setText=c.getString(1);

这些行错了:

Starter.setText=c.getString(1);
MainCource.setText(MainCourse);
Dessert.setText=c.getString(1);

StarterMainCourseDessertString类型的对象。字符串是文本,您无法在文本上设置文本。我想,您要做的是在TextView上设置文字。

所以你需要的是TextView。这必须在您的布局xml文件中。例如,它看起来像这样:

 <TextView
   android:layout_width="match_parent"
   android:layout_height="wrap_content"        
   android:id="@+id/dessertView"/>

然后,在您的活动中,您必须创建一个全局对象:

private TextView mDessertTextView;

onCreate()中初始化它:

mDessertTextView = (TextView)findViewById(R.id.dessertView);

然后你像在这里一样检索文本:

String Dessert = c.getString(1);

此字符串名为Dessert,您必须设置为TextView

mDessertView.setText(Dessert);

这就是它的工作方式。你真的需要一些编程基础,你应该从零开始:

Basic Example