我有一个扩展FragmentActivity的Activity(它最初扩展了Activity但是我改变了它 - 原因并不重要,但我把它包括在内,以防它有助于追踪问题)。它显示的一些信息因特定变量而异,因此我在activity的layout xml中有一个LinearLayout来保存这些信息,并以编程方式从该类中添加它。这曾经工作得很好,但现在已经停止工作,我看不出任何理由。
以下是该文件的摘录:
public class FriendProfile extends FragmentActivity {
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.friendprofile);
Intent intent = getIntent();
userData = (ArrayList<String>)intent.getSerializableExtra("userData");
String status = userData.get(4).trim();
LinearLayout extras = (LinearLayout)findViewById(R.id.friendextra);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
if(status.equals("requester")) {
Log.v(TAG, "requester");
TextView view = new TextView(this);
view.setText(R.string.requestpending);
view.setLayoutParams(params);
view.setGravity(Gravity.CENTER);
extras.addView(view);
}
}
}
摘自friendprofile.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/friendextra"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="vertical" >
</LinearLayout>
logcat没有显示任何有趣的内容 - 它肯定会进入if块,因为日志会打印'requester',但textview不会显示。状态可以采用多个值,每个值都会为布局添加不同的组件,但都不起作用。应用程序不会崩溃或任何事情,它只是不显示组件。有人可以帮忙吗?
答案 0 :(得分:0)
我终于找到了问题的根源 - 在friendprofile.xml文件中有一个关于LinearLayout的TableLayout,其高度设置为fill_parent。 LinearLayout正在更新,但已关闭屏幕。我将TableLayout的高度更改为wrap_content,这解决了问题的一半。
我仍然无法显示文本,因此我在LinearLayout中放置了一个空文本视图,只是以编程方式设置文本,这样就可以了。