【发布时间】:2018-01-29 13:15:26
【问题描述】:
我创建了自定义对话框,我想在单击 取消 按钮时将其关闭。我在谷歌上搜索,大多数人都在使用 Dialog 或 AlertDialog 但我没有使用类似的东西。这是我的TextDialogActivity,它在我的应用程序中单击按钮时加载。来自MainActivity 我只是将另一个活动呈现为自定义对话框。当我单击对话框上的Save 按钮时,我想访问父活动中的数据,该数据存储在子活动中的变量textData 中。
public class TextDialogActivity extends AppCompatActivity {
TabHost tabHost;
private static final int FILE_SELECT_CODE = 0;
private String textData;
private Button browse;
private Button cancel_button1;
private Button cancel_button2;
private TextView text_preview;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.text_dialog_layout);
browse = findViewById(R.id.browse_file_button);
text_preview = findViewById(R.id.text_preview);
cancel_button1 = findViewById(R.id.cancel_button);
cancel_button2 = findViewById(R.id.cancel_button2);
tabHost = findViewById(R.id.tabHost);
tabHost.setup();
TabHost.TabSpec spec=tabHost.newTabSpec("tag1");
spec.setContent(R.id.encode_dialog_text_tab);
spec.setIndicator("Edit Text");
tabHost.addTab(spec);
spec=tabHost.newTabSpec("tag2");
spec.setContent(R.id.encode_dialog_browse_tab);
spec.setIndicator("Browse");
tabHost.addTab(spec);
browse.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showFileChooser();
}
});
cancel_button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// close dialog
}
});
cancel_button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// close dialog
}
});
}
}
我将@style/Theme.AppCompat.Dialog 添加到我的AndroidManifest.xml 以创建我的对话框。
<activity
android:name=".activity.TextDialogActivity"
android:theme="@style/Theme.AppCompat.Dialog"
android:label="Secret Message">
</activity>
这是截图。
【问题讨论】:
-
你能说清楚你是否正在显示一个对话框,然后你想关闭对话框吗?
-
@Jai Prak 如果我理解正确,您想从父活动打开一个弹出窗口(这是一个活动),并从弹出窗口中的父活动访问数据?如果是这种情况,您将不得不使用意图。
-
你可以创建一个扩展 Dailog 的对话框,而不是 Activity,你可以在那里做你的事情......你可以在该对话框中访问解除方法
-
@Kemo 是一样的。但我想从弹出窗口访问父活动的数据。
-
添加截图后....只需将您的 AppCompactActivity 更改为 Dialog...并使用 'dismiss' 方法
标签: android android-dialog customdialog cancel-button