gpt4 book ai didi

java - 无法从代码向 XML 布局添加 View

转载 作者:行者123 更新时间:2023-11-29 22:16:28 25 4
gpt4 key购买 nike

我有那些代码:

public class ContentEditText extends EditText {
/*
* Constructors
*/
public ContentEditText(Context context, AttributeSet attrs, int defStyle)
{
super(context, attrs, defStyle);
}

public ContentEditText(Context context, AttributeSet attrs)
{
super(context, attrs);
}

public ContentEditText(Context context)
{
super(context);
}

/*
* Listener
*/
@Override
protected void onSelectionChanged(int selStart, int selEnd)
{
Toast.makeText(getContext(), "selStart is " + selStart + "selEnd is " + selEnd, Toast.LENGTH_LONG).show();
}
}

public class Main extends Activity {
private LinearLayout mainLayout;
private Button bBT;
private Button uBT;
private Button iBT;
private Button lBT;
private EditText titleET;
private ContentEditText contentET;
private Markup markup;

/** onCreate Function */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initLayout();
setContentView(mainLayout);
}

private void initLayout()
{
// initialize some components by XML layout
mainLayout = (LinearLayout) findViewById(R.id.main_layout);
bBT = (Button) findViewById(R.id.boldBT);
uBT = (Button) findViewById(R.id.underlineBT);
iBT = (Button) findViewById(R.id.italicBT);
lBT = (Button) findViewById(R.id.listBT);
titleET = (EditText) findViewById(R.id.titleET);
// initialize a EditText programmatically
contentET = new ContentEditText(this);
contentET.setGravity(Gravity.TOP);
contentET.setLayoutParams(new LinearLayout.LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
// add the EditText to the main layout
mainLayout.addView(contentET);
}

我以为我以正确的方式将 contentET 添加到主布局,但它不起作用,LogCat 说变量 contentET 为“NullPointerException”,我不知道为什么。谁能告诉我我哪里做错了?谢谢!

最佳答案

将您的代码更改为此,因为第一个调用应该是 super 之后的 setContentView。因为在你上面的代码中不是这种情况,你试图在没有 inflating 的情况下访问布局,因此它抛出 nullpointer exception

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_xml_file);
initLayout();
}

关于java - 无法从代码向 XML 布局添加 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8321558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com