TextView不会更改其文本

时间:2018-05-03 11:35:38

标签: java android textview

您好TextView有问题。这是我的代码

final TextView username = (TextView) _v.findViewById(R.id.username);
final LinearLayout linear7 = (LinearLayout) _v.findViewById(R.id.linear7);
final TextView date = (TextView) _v.findViewById(R.id.date);
final TextView msg = (TextView) _v.findViewById(R.id.msg);
final TextView username2 = (TextView) _v.findViewById(R.id.username);
final LinearLayout linear72 = (LinearLayout) _v.findViewById(R.id.linear7);
final TextView date2 = (TextView) _v.findViewById(R.id.date);
final TextView msg2 = (TextView) _v.findViewById(R.id.msg);
final LinearLayout linear999 = (LinearLayout) _v.findViewById(R.id.linear999);
final LinearLayout linear9992 = (LinearLayout) _v.findViewById(R.id.linear9992);

username.setText(map1.get((int)_position).get("name").toString());
msg.setText(map1.get((int)_position).get("msg").toString());
date.setText(map1.get((int)_position).get("date").toString());
username2.setText(username.getText().toString());
msg2.setText(msg.getText().toString());
date2.setText(date.getText().toString());

如您所见,username2应与用户名具有相同的文本。但是,它只有我在设计师中给出的文字。请帮忙。

4 个答案:

答案 0 :(得分:6)

看一下你的身份TextView它是一样的。将其更改为在第二个TextView

上连接的ID
 final TextView msg = (TextView) _v.findViewById(R.id.msg);

 final TextView msg2 = (TextView) _v.findViewById(R.id.msg); <--- change this ID

答案 1 :(得分:5)

final TextView username = (TextView) _v.findViewById(R.id.username);
final TextView username2 = (TextView) _v.findViewById(R.id.username);

他们有相同的视图ID。您必须更改username2视图ID。

答案 2 :(得分:1)

我只是将两个不同用户(Maxitors和Mike)提到的两个正确问题合并为一个答案:

两个对的Textview都是相同的元素

  • 用户名和用户名2的ID为R.id.username
  • msg和msg2的id为R.id.msg

这会导致它们在对它们进行函数调用时引用相同的元素。例如,将username2的文本设置为username的文本将没有明显的效果,因为您只需将元素R.id.username的文本设置为自身。

要解决此问题,您需要将Username2和msg2分配给正确的ID,无论它们是什么。 (看看你的命名方案,我怀疑它们是R.id.username2和R.id.msg2)

答案 3 :(得分:-1)

我认为您无法更改文本,因为您将其声明为最终变量。在什么上下文中,您需要将此代码块声明为final。不用我的第一个建议就试一试。