Android:Layout.addView() 不起作用

Posted

技术标签:

【中文标题】Android:Layout.addView() 不起作用【英文标题】:Android: Layout.addView() doesn't work 【发布时间】:2011-09-16 13:40:41 【问题描述】:

当我尝试运行以下代码时出现错误。模拟器给了我这个错误信息,然后应用程序强制关闭: 应用程序意外停止。出了什么问题?

import edu.chl.dat255.bluebanana.R;
import android.app.Activity;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.TextView;

public class ProMan extends Activity 
    @Override
    public void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        LinearLayout layout = (LinearLayout) findViewById(R.layout.main);

        TextView t = new TextView(getApplicationContext());
        t.setText("Hello world");
        layout.addView(t);
    

【问题讨论】:

请发布完整的异常错误。 应用程序意外停止是几乎所有应用程序的通用短语。 我不知道如何找到除了弹出的错误消息之外的任何其他错误消息。控制台中没有写入任何内容。 “抱歉!Blue Banana 应用程序(进程 edu.chl.dat255.bluebanana)意外停止。请重试” LogCat 中提供了更详细的错误消息。如果您在 Eclipse 中,则可以通过单击右上角的“DDMS”按钮来查看它(可能必须先单击箭头)。 【参考方案1】:
  LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);

In your xml file main xml layout android:id="@+id/mainLayout" 

【讨论】:

【参考方案2】:

你应该在 main.xml 中为你的根 LinearLayout 设置 id,比如

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_
    android:layout_
    android:id="@+id/mainLayout">

然后将其引用为

LinearLayout layout = (LinearLayout) findViewById(R.id.mainLayout);

而不是 findViewById(R.layout.main);

【讨论】:

【参考方案3】:

您应该在 `TextView t 上提供布局信息。应提供布局宽度和布局高度。请参阅下面的代码。

LinearLayout.LayoutParams params = 
    new LinearLayout.LayoutParams( 
       ViewGroup.LayoutParams.WRAP_CONTENT, 
       ViewGroup.LayoutParams.WRAP_CONTENT, 0.0F);
t.setLayoutParams(tvParams);

layout.addView(t);

【讨论】:

以上是关于Android:Layout.addView() 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

无法更改 TextView 的大小

Android逆向系列文章— Android基础逆向

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

Android 逆向Android 权限 ( Android 逆向中使用的 android.permission 权限 | Android 系统中的 Linux 用户权限 )

android 21 是啥版本

Android逆向-Android基础逆向(2-2)