Android TextView setText无法使用SQLite中的字符串
我的布局中有一个通过编程创建的TextViewAndroid TextView setText无法使用SQLite中的字符串,android,android-sqlite,textview,settext,Android,Android Sqlite,Textview,Settext,我的布局中有一个通过编程创建的TextView String dataname; dataname="test name"; TextView tv = new TextView(this); tv.setText(dataname); 这正如预期的那样有效 如果我从SQL数据库中设置dataname,它将不起作用。下面是提取数据的代码片段 表类声明包括: public class TblTest { private int _id; private String
String dataname;
dataname="test name";
TextView tv = new TextView(this);
tv.setText(dataname);
这正如预期的那样有效
如果我从SQL数据库中设置dataname,它将不起作用。下面是提取数据的代码片段
表类声明包括:
public class TblTest {
private int _id;
private String _name;
返回字段的函数
public String get_name() {
return this._name;
}
应将数据放入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日
数据库代码按原样使用编辑活动。。。包括名称字段。我可以将它设置为这样的编辑视图
etName = (EditText) findViewById(R.id.etName);
etName.setText(test.get_name());
<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>
_name字段是在SQL查询过程中使用以下命令从数据库中设置的
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文件如下所示
etName = (EditText) findViewById(R.id.etName);
etName.setText(test.get_name());
<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>
请记住,作为对奇怪现象的总结:
数据库代码的工作方式与在其他活动中编写的相同
i显示dataname变量在setText之前包含来自数据库的正确数据
如果我手动填写dataname,它将正确显示在TextView tv中
根据日志,只有当dataname来自数据库时,它才会失败,即使它再次在其中包含该名称
希望这也能有所帮助……对于其他使用此问题寻求帮助的人,我计算了修复它所需的时间,但不确定为什么它不能按我的方式工作。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);
希望这能帮助其他人。。。虽然我很想知道为什么宽度的换行内容不起作用。您在哪里设置_name值?尝试string.valueOf、toString或add a您可以显示xml布局您如何将编程创建的文本视图添加到屏幕上?将附加信息发布到主问题,以回答评论中提出的问题。