我正在尝试创建一个基于 smack 库的聊天应用程序。我认为我的问题与这个库无关,因为 logcat 可以正确发送和接收所有内容。我的问题是当我收到一条消息时它不显示。以下是我用来显示文本的方法。
public void TextCreating(String message) {
Log.d("START", "Method Excution started.");
layout = (LinearLayout) findViewById(R.id.layoutLinear);
LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT,
LayoutParams.WRAP_CONTENT);
tv = new TextView(this);
tv.setLayoutParams(lparams);
tv.setText(message);
tv.setTextColor(Color.WHITE);
Log.d("STARTED", "Text color OK.");
layout.addView(tv);
Log.d("STARTED", "Text didsplayed.");
}
这种代码和平将作为收到的消息执行。这些接收到的消息通过一个名为 PacketListener 的侦听器进行处理。这个接收部分工作正常。在这个监听器中,当我调用上面的 TextCreating 方法时,它会执行到 tv.setTextColor(Color.WHITE); 最后一行不执行。这是什么原因?我怎么解决这个问题 ?提前致谢 :)
编辑 :
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Chat Room"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Chat History :" />
<LinearLayout
android:id="@+id/layoutLinear"
android:layout_width="fill_parent"
android:layout_height="250dp"
android:orientation="vertical"
android:background="#000000"
android:layout_marginLeft="2dp"
android:layout_marginRight="2dp" >
</LinearLayout>
<EditText
android:id="@+id/editTextMessage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:ems="10" >
<requestFocus />
</EditText>
<Button
android:id="@+id/buttonSend"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Send" />
</LinearLayout>