gpt4 book ai didi

android - 如何从自定义 FirebaseListAdapter 类调用 mainActivity 中的静态方法?

转载 作者:行者123 更新时间:2023-11-29 20:26:22 25 4
gpt4 key购买 nike

我想使用 Firebase 在 ChatListAdapter 类的 mainActivity 中弹出一个警报 View 。

问题/错误:

com.firebase.androidchat.Main.activity.this cannot be reference from a static context

ChatListAdapter 中的代码:

public class ChatListAdapter extends FirebaseListAdapter<Chat> {

...

protected void populateView(View view, Chat chat) {
...
MainActivity.displayAmountPopup();
}

ChatListAdapter 中的代码:

public static void displayAmountPopup(){

....

new AlertDialog.Builder(MainActivity.this)
.setTitle(strTitle)
.setMessage(strAmountMessage)
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.d("AlertDialog", "Positive");
// Present Acknowledgement View!!!!!!!!!
Intent intent = new Intent(MainActivity.this, AcknowledgementActivity.class);
startActivity(intent);

/*Couldn't work this Error:local variable mContext is accessed from within inner class; needs to be declared final
Intent intent = new Intent(mContext, AcknowledgementActivity.class);
//startActivity(intent);
mContext.startActivity(new Intent(mContext, AcknowledgementActivity.class));*/
}
})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Log.d("AlertDialog", "Negative");
}
})
.show();
}

最佳答案

com.firebase.androidchat.Main.activity.this cannot be reference from a static context

因为无法从 static 方法/ block 访问 MainActivity.this

要获取用于显示 AlertDialog 的 Context,请将一个 Context 参数添加到 displayAmountPopup 方法:

public static void displayAmountPopup(Context mContext){
....
new AlertDialog.Builder(mContext)
....
}

现在从 populateView 调用时将上下文传递给 displayAmountPopup 方法:

MainActivity.displayAmountPopup(view.getContext());

关于android - 如何从自定义 FirebaseListAdapter 类调用 mainActivity 中的静态方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32455080/

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