以Dialog显示活动显示两个对话框

时间:2014-07-21 09:13:17

标签: android android-dialog

要求:我希望在时区更改后显示对话框,我接下来的步骤

输出:它显示2个对话框(请参阅最后的对话框图像我得到的内容)

预期输出:我想只显示一个图像,我不想显示"应用程序名称"作为另一个对话框(即)对话框-2。任何帮助??

步骤1]。在清单文件中创建广播接收器

 <receiver android:name=".common.TimeReceiver">
  <intent-filter>
  <action android:name="android.intent.action.TIMEZONE_CHANGED"/>
  </intent-filter>
  </receiver>

Step-2]。如果时区改变,写代码显示对话框,[从某些网站我开始知道从BroadcastReceiver,我们无法显示dialog.so我正在使用活动显示对话框]

public class TimeReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent in = new Intent(context, TimeActivity.class);
        in.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        context.startActivity(in);
    }
}

步骤3]。在清单文件中创建活动

 <activity android:name="TimeActivity"
   android:theme="@android:style/Theme.Dialog"></activity>

步骤4]。创建活动的布局文件

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_margin="10dp"
        android:textColor="#000"
        android:text="Your Zone is Changed" />
    <Button
        android:id="@+id/okbutton"
        style="?android:attr/buttonStyle"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"
        android:layout_margin="10dp"
        android:padding="5dp"
        android:text="@string/string_ook" />
</LinearLayout>

步骤-5]。用于在“活动”

中显示对话框的代码
public class TimeActivity extends Activity {
    Button ok;
    Dialog d ;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    d = new Dialog(this);
    d.requestWindowFeature(Window.FEATURE_NO_TITLE);
    d.setContentView(R.layout.timezonechanged);
    d.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
    ok = (Button) d.findViewById(R.id.okbutton);
    d.show();
        ok.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            d.cancel();
            }
    });
    }}

输出:

对话框 - 1:

enter image description here

对话框 - 2:(只需考虑我的应用名称是&#34; DialogApp&#34;)

enter image description here

3 个答案:

答案 0 :(得分:1)

在活动课程中,我做了如下所示的更改,现在它正在运行,感谢user1688181

public class TimeActivity extends Activity {
    Button ok;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.timezonechanged);
        ok = (Button) findViewById(R.id.okbutton);

    ok.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            finish();
        }
    });
    } 
}

答案 1 :(得分:0)

在你的清单中,只需按照这样的方式进行活动声明..

 <activity android:name="app.kleward.ecocabs.utils.GPSDialogActivity"
        android:configChanges="orientation|keyboardHidden"
        android:theme="@android:style/Theme.Dialog"
         />

答案 2 :(得分:0)

您正在将活动用作对话框并向该活动添加对话框。那就是问题所在。 从代码中删除对话框。只需使用如下的行为。

public class TimeActivity extends Activity {
Button ok;
Dialog d ;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    this.requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.timezonechanged);

    ok = (Button) d.findViewById(R.id.okbutton);

    ok.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View arg0) {
        d.cancel();
        }
});
}}