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);
回顾一下看似奇怪的事情:
- 数据库代码与其他活动中编写的一样工作
- Log.i 表明 dataname 变量在 setText
之前包含来自数据库的正确数据
- 如果我手动填写数据名,它会在 TextView tv 中正确显示
- 仅当数据名来自数据库时才会失败,即使其中包含名称(同样,根据 Log.i)
希望这也有帮助...
对于使用此问题寻求帮助的任何其他人,我想出了解决它的方法,但不确定为什么它不能像我遇到的那样工作。 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 宽度不起作用。
我的布局中有一个以编程方式创建的 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);
回顾一下看似奇怪的事情:
- 数据库代码与其他活动中编写的一样工作
- Log.i 表明 dataname 变量在 setText 之前包含来自数据库的正确数据
- 如果我手动填写数据名,它会在 TextView tv 中正确显示
- 仅当数据名来自数据库时才会失败,即使其中包含名称(同样,根据 Log.i)
希望这也有帮助...
对于使用此问题寻求帮助的任何其他人,我想出了解决它的方法,但不确定为什么它不能像我遇到的那样工作。 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 宽度不起作用。