Android TextView:getText()正在工作,但setText不起作用

问题描述:

我有一个ListView,我的要求是将第一个项目设置为选中状态(使用白色背景和不同文本,其他列表项目具有灰色背景)。这是我使用Android TextView:getText()正在工作,但setText不起作用

View listFirstItem = myListAdapter.getView(0,null, null); 
Log.d(TAG, ((TextView)listFirstItem.findViewById(R.id.itemTitle)).getText()+ ""); 
((TextView)listFirstItem.findViewById(R.id.itemTitle)).setText("My Text"); 
listFirstItem.setBackground(getActivity().getDrawable(R.drawable.ripple)); 

有趣的是,我得到正确的项目标题(第一个列表项的标题)的示例代码,但是当我试图改变试试这个称号来改变颜色,它的工作。我知道一个解决方案来实现所需的输出,但我想了解这个代码有什么问题。

+0

我想你已经设置文本结束,但是TextView的是不刷新的内容呢。或仍然得到错误,然后发布更多细节 – GiapLee

+0

请发布xml布局where itemTitle定义 –

+0

@GiapLee它没有抛出任何异常或错误消息。 – Alex

您可以编写代码如下:

View listFirstItem = myListAdapter.getView(0,null, null); 
TextView tv = (TextView)listFirstItem.findViewById(R.id.itemTitle); 
Log.d(TAG, (tv.getText().toString()); 
tv.setText("My Text"); 
listFirstItem.setBackground(getActivity().getDrawable(R.drawable.ripple)); 

你有一个列表视图!用于显示数据的listview,用于传递给yourAdapter的数据。 你必须改变你的数据,然后NotifyDataSetChanged()它。

看到这个link

+0

为什么需要通知。 ListView项目的单击单击我可以在不通知的情况下更新视图,并且它可以很好地工作。为什么它不在这里发生。 – Alex

+1

@Alex你不能这样做... listview更新适配器的数据,而不是其他方式 –

+0

但为什么它在Click事件的情况下工作? – Alex