在android中设置TextView的可见性不起作用
Posted
技术标签:
【中文标题】在android中设置TextView的可见性不起作用【英文标题】:Set visibility of TextView in android not working 【发布时间】:2011-12-16 13:19:42 【问题描述】:当我尝试将视图设置为“GONE”时,我的程序遇到了运行时异常。 我处理它的代码:
setContentView(R.layout.list_main);
...
lv = getListView();
View header = (View) findViewById(R.id.header_layout_root);
TextView tv = (TextView) header.findViewById(R.id.new_highscore);
tv.setVisibility(View.GONE);
lv = getListView();
LayoutInflater inflater = getLayoutInflater();
View header = inflater.inflate(R.layout.list_header, (ViewGroup) findViewById(R.id.header_layout_root));
lv.addHeaderView(header, null, false);
mC = mDBHelper.getAllHighScores();
startManagingCursor(mC);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.row, mC,
new String[] DBAdapter.COL_NAME, DBAdapter.COL_SCORE ,
new int[] R.id.txtText1, R.id.txtText2 );
lv.setAdapter(adapter);
xml:
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_
android:layout_
android:id="@+id/header_layout_root"
android:background="#ffffff"
android:orientation="vertical">
<TextView
android:layout_
android:layout_
android:text="Pick Master High Scores"
android:background="#000000"
android:textColor="#ffffff"
android:textSize="28dp"
android:gravity="center_horizontal"
android:paddingTop="10dp"
android:paddingBottom="10dp">
</TextView>
<RelativeLayout
android:layout_
android:layout_
android:id="@+id/header_layout_root1">
<ImageView
android:id="@+id/sample_image"
android:layout_
android:layout_
android:adjustViewBounds="true"
android:src="@drawable/pickmaster"
android:scaleType="fitXY">
</ImageView>
<TextView
android:id="@+id/new_highscore"
android:text="New High Score added!"
android:layout_
android:layout_
android:textColor="#ffffffff"
android:textSize="12dp"
android:background="#AA000000"
android:padding="5dp"
android:layout_alignParentLeft="true"
android:layout_alignBottom="@id/sample_image">
</TextView>
</RelativeLayout>
我认为,问题在于 new_highscore 不在 list_main 中,而是在另一个 xml 文件中。我使用了两个,因为我有一个带有标题和图像等的列表视图。
关于使视图“不可见”或“消失”的任何想法?
谢谢,
本
【问题讨论】:
如何使用带有 R.id.new_highscore 的 xml 文件? 【参考方案1】:试试这个代码
lv = getListView();
LayoutInflater inflater = getLayoutInflater();
View header = inflater.inflate(R.layout.list_header, (ViewGroup) findViewById(R.id.header_layout_root));
lv.addHeaderView(header, null, false);
View relativeLayout = header.findViewById(R.id.header_layout_root1);
TextView highScore = relativeLayout.findViewById(R.id.new_highscore);
highScore.setVisibility(View.GONE);
从顶部删除此代码
lv = getListView();
View header = (View) findViewById(R.id.header_layout_root);
TextView tv = (TextView) header.findViewById(R.id.new_highscore);
tv.setVisibility(View.GONE);
如果这不起作用,请发布您遇到的异常。
【讨论】:
我试过了,没用...我更新了代码以显示我如何分配列表视图 谢谢贾斯汀,我已经更改了代码,并且似乎出现了一些其他错误。不是直接访问时(即查看高分按钮),而是当我添加分数时,将变量传递给新活动,然后显示高分。我收到这些错误,它是在 startAcvtvity 之后和随后的 onCreate 之前。 WARN/WindowManager(1377):以前的调度状态:KeyEventaction=1 code=4 repeat=0 meta=0 scancode=158 mFlags=8 to Window45004ae8 com.test. frequencyTest/com.test.frequencyTest.Menu paused=false @ 1319733312935 lw=Window45004ae8 com.test.frequencyTest/com.test.frequencyTest.Menu paused=false lb=android.os.BinderProxy@45004928 fin=false gfw =true ed=true tts=0 wf=false fp=false mcf=Window45004ae8 com.test.frequencyTest/com.test.frequencyTest.Menu paused=false 错误是我的错误,在清单中。你的解决方案节省了一天:) 如果我能进行两次投票,你今天就会得到它。非常感谢人!投票过一次。【参考方案2】:你不能只有一个带有 textview 和 listview 的 xml 吗?那么它应该可以工作
【讨论】:
我想以实现方式使用 LayoutInflater以上是关于在android中设置TextView的可见性不起作用的主要内容,如果未能解决你的问题,请参考以下文章
应用ellipsize时,获取textview中可见字符的数量
[转]Android中设置TextView的颜色setTextColor
安卓在代码中设置TextView的drawableLeftdrawableRightdrawableTopdrawableBottom