gpt4 book ai didi

android - 如何在 IntentService 类的 onHandleIntent() 方法中打开对话框

转载 作者:行者123 更新时间:2023-11-29 16:13:28 27 4
gpt4 key购买 nike

我想在 IntentService 类的 onHandleIntent() 方法中打开一个自定义对话框,但是当我在这个方法中编写用于显示对话框的代码时,它显示错误

方法 findViewById(int) 未定义类型 MyAlarmService

谁能建议我如何解决这个问题?

我用过的代码:

public class MyAlarmService extends IntentService { 
public void onCreate() {
super.onCreate();
}

public MyAlarmService() {
super("MyAlarmService");
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, startId, startId);
Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show();
return START_STICKY;
}

@SuppressWarnings("static-access")
@Override
protected void onHandleIntent(Intent intent) {
final Dialog alarmDialog = new Dialog(MyAlarmService.this);
alarmDialog .requestWindowFeature(alarmDialog.getWindow().FEATURE_NO_TITLE);
alarmDialog .getWindow().setBackgroundDrawable(new ColorDrawable(0));

Context mContext = getApplicationContext();
LayoutInflater inflater = (LayoutInflater) mContext.getSystemService(LAYOUT_INFLATER_SERVICE);
View layout = inflater.inflate(R.layout.clear_all_warning_dialog, (ViewGroup) findViewById(R.id.layout_warning_dialog));

TextView dialogTitile = (TextView) layout.findViewById(R.id.dialog_title_text);

TextView dialogDesc = (TextView) layout.findViewById(R.id.dialog_desc_text);

Button buttonYes = (Button) layout.findViewById(R.id.button_yes);

Button buttonNo = (Button) layout.findViewById(R.id.button_no);

alarmDialog.setContentView(layout);
alarmDialog.show();

buttonYes.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alarmDialog.dismiss();
}
});
buttonNo.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
alarmDialog.dismiss();
}
});
}
}

最佳答案

只需启动一个 Activity 就可以完成,而不是考虑膨胀对话框:

@Override
protected void onHandleIntent(Intent intent) {
synchronized (this)
{
startActivity(new Intent(this,ActivityXYZ.class).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK));
}
}

制作对话框布局(这是一个 ActivityXYZ 的布局,您在上面开始)如下:

<?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:background="#000"
android:orientation="vertical" >

<TextView
android:id="@+id/TextView01"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_margin="10dp"
android:gravity="center_horizontal"
android:text="Alert Dialog Message"
android:textColor="#fff"
android:textSize="16dp" >
</TextView>
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_marginBottom="5dp">

<Button
android:id="@+id/ButtonOk"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Ok"
android:textColor="#000"
android:textSize="18sp"
android:textStyle="bold" >
</Button>

<Button
android:id="@+id/ButtonCancel"
android:layout_width="150dp"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:text="Cancel"
android:textColor="#000"
android:textSize="18sp"
android:textStyle="bold"
>
</Button>
</LinearLayout>
</LinearLayout>

并在 list 文件中将其包含在该 Activity 的配置中:

android:theme="@android:style/Theme.Dialog"

在为该 Activity 制作布局时,只需添加 TextView 和两个按钮,就像在对话框中所做的那样,它会产生从服务扩展对话框的效果。

如有任何说明,请告诉我。 :))))

关于android - 如何在 IntentService 类的 onHandleIntent() 方法中打开对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11293062/

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