У меня есть следующий XML-файл макета, HELPME.XML
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TextView
android:id="@+id/fVal"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:textStyle="bold"
android:textColor="#CC0000"
android:text="Function:" />
<TextView
android:id="@+id/eVal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textColor="#CC0000"
android:text="Error Control:" />
<TextView
android:id="@+id/hDesc"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="BLAH" />
<TextView
android:layout_width="wrap_content"
android:layout_height="12dp"
android:text="" />
<Button
android:id="@+id/closeButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:text="Close" />
</LinearLayout>
И бит из MainFile.java, который вызывает этот макет XML в диалоговом окне:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
//Toast.makeText(MainActivity.this, "Help is Here...", Toast.LENGTH_SHORT).show();
//openHelpWindow();
final Dialog d = new Dialog (MainActivity.this);
d.requestWindowFeature(Window.FEATURE_LEFT_ICON);
d.setContentView(R.layout.helpme);
d.setFeatureDrawableResource(Window.FEATURE_LEFT_ICON, R.drawable.ic_help);
d.setTitle("Color Finder Help");
d.setCancelable(true);
// **********************************************************
// EDIT - FIXED CODE
// This closes just the Dialog window...
Button btn = (Button) d.findViewById(R.id.closeButton);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
d.dismiss();
}
});
//******************************************************************
d.show();
break;
case 2:
Toast.makeText(MainActivity.this, "About this app...", Toast.LENGTH_SHORT).show();
break;
//case 3:
// Toast.makeText(MainActivity.this, "Exiting app...", Toast.LENGTH_SHORT).show();
// System.exit(0);
// break;
}
return true;
}
Поскольку у меня есть пользовательская кнопка «Закрыть окно» в макете XML, а также потому, что она отображается как часть макета в диалоговом окне, которое открывается из выбора пункта меню ... как я могу создать действие для кнопка, которая будет закрывать диалоговое окно?