TextView setText 不适用于来自 SQLite 的字符串

TextView setText not working with string from SQLite

我的布局中有一个以编程方式创建的 TextView。

String dataname;
dataname="test name";

TextView tv = new TextView(this);
tv.setText(dataname);

这按预期工作。

如果我从 SQL 数据库设置数据名,它不起作用。这是提取数据的代码片段。

table class 声明包括:

public class TblTest {
     private int     _id;
     private String  _name;

函数表示returns字段

public String get_name() {
    return this._name;
}

"should" 将数据放入 TextView 的修改调用

String dataname;

String dataname=test.get_name();

Log.i("TESTLOG","dataname="+dataname);

TextView tv = new TextView(this);
tv.setText(dataname);

TESTLOG 在 dataname 变量中显示数据库中的正确名称。 TextView 显示它出现的单个像素字符(很难分辨)。

不确定为什么会这样。有什么建议吗?

更多信息 2015 年 9 月 21 日

数据库代码按原样使用编辑 activity...包括名称字段。我可以像这样将它设置为 EditView...

etName = (EditText) findViewById(R.id.etName);
etName.setText(test.get_name());

_name 字段是在 SQL rawQuery 期间从数据库设置的,使用以下...

test.set_name(cursor.getString(cursor.getColumnIndex(TEST_FLD_NAME)));

并且 set_name 函数读取...

public void set_name(String name){
    this._name=name;
}

TextView tv 在设置为 RelativeLayout 后立即添加...

        testrl.addView(tv);

具有未以编程方式添加的主布局的 XML 文件如下所示...

<ScrollView
    android:layout_width="fill_parent"
    android:paddingTop="5dp"
    android:layout_height="0dp"
    android:layout_weight="1.30"
    >

    <LinearLayout
        android:id="@+id/llTest"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        >
    </LinearLayout>
</ScrollView>

连同以编程方式输入的代码...

LinearLayout scrolllayout = (LinearLayout) findViewById(R.id.llTest);
RelativeLayout testrl = new RelativeLayout(this);
RelativeLayout.LayoutParams tvp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

// code above for setting TextView is here

scrolllayout.addView(testrl,tvp);

回顾一下看似奇怪的事情:

希望这也有帮助...

对于使用此问题寻求帮助的任何其他人,我想出了解决它的方法,但不确定为什么它不能像我遇到的那样工作。 LayoutParam 读取...

RelativeLayout.LayoutParams tvp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

无论出于何种原因,都需要...

RelativeLayout.LayoutParams tvp = new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.WRAP_CONTENT);

希望对其他人有所帮助...虽然我真的很想知道为什么 WRAP_CONTENT 宽度不起作用。