gpt4 book ai didi

android - 以编程方式创建要在 AlertDialog 上显示的布局

转载 作者:搜寻专家 更新时间:2023-11-01 08:41:38 25 4
gpt4 key购买 nike

我想动态创建一个 LinearLayout。

如何将其设置为显示在我的 AlertDialog 中?

我看过一些示例,其中布局是通过 XML 创建并膨胀显示的,但我不想在可以动态创建时创建 XML 布局。

我仅限于 API 16 = Android 4.1.2

这是我的 Activity 按钮...

public void TestOnClick() {
Button test_button = (Button) findViewById(R.id.button_test);
test_button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

LinearLayout layout = new LinearLayout(v.getContext());

//Create a TextView to add to layout
TextView textview = new TextView(v.getContext());
textview.setText("My Test");
layout.addView(textview);

//Add abunch of other items to the layout
//blah blah blah

AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());
builder.setView(layout);
builder.setNeutralButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
AlertDialog alert = builder.create();
alert.show();
}
});
}

最佳答案

看起来我必须执行以下操作才能以动态和编程方式创建 LinearLayout 并将该布局显示到 AlertDialog 上:

public void TestOnClick() {
Button test_button = (Button) findViewById(R.id.button_test);
test_button.setOnClickListener(new View.OnClickListener() {

@Override
public void onClick(View v) {

//Create LinearLayout Dynamically
LinearLayout layout = new LinearLayout(v.getContext());

//Setup Layout Attributes
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT);
layout.setLayoutParams(params);
layout.setOrientation(LinearLayout.VERTICAL);

//Create a TextView to add to layout
TextView textview = new TextView(v.getContext());
textview.setText("My Text");

//Create Spinner
Spinner spinner = new Spinner(v.getContext());
String[] string_list = new String[]{"Test 1", "Test 2", "Test 3"};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_selectable_list_item, string_list);
spinner.setAdapter(adapter);
spinner.setGravity(Gravity.CENTER);

//Create button
Button button = new Button(v.getContext());
button.setText("My Button");
button.setWidth(100);
button.setHeight(50);

//Add Views to the layout
layout.addView(textview);
layout.addView(spinner);
layout.addView(button);

//Create AlertDialog Builder
AlertDialog.Builder builder = new AlertDialog.Builder(v.getContext());

//Give the Dialog a Title
builder.setTitle("Results");

//Set the Dynamically created layout as the Dialogs view
builder.setView(layout);

//Add Dialog button that will just close the Dialog
builder.setNeutralButton("Done", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});

//Show the custom AlertDialog
AlertDialog alert = builder.create();
alert.show();
}
});
}

关于android - 以编程方式创建要在 AlertDialog 上显示的布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32026299/

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