要求:我希望在时区更改后显示对话框,我接下来的步骤
输出:它显示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:
对话框 - 2:(只需考虑我的应用名称是&#34; DialogApp&#34;)
答案 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();
}
});
}}