gpt4 book ai didi

android - 让 Android 选项菜单等到从 Web 请求返回

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

我正在调用一个端点来提取 JSON。我希望 Activity 等待设置选项菜单,因为如果键值从 Web 服务返回 true,我希望星形图标显示完整,反之亦然。我已经尝试使用 onPrepareOptionsMenu() 对此进行编程,但因为响应是在一个单独的线程上,所以它会加载切换图标的默认值。

指针会很有帮助!

@Override
public boolean onPrepareOptionsMenu(Menu menu){
if(isFavorite){
menu.removeItem(R.id.action_non_favorite);
menu.add(101, R.id.action_favorite, 0, "true");
}else{
menu.removeItem(R.id.action_favorite);
menu.add(101, R.id.action_non_favorite, 0, "false");
}
return super.onPrepareOptionsMenu(menu);
}

这是请求:

private void sendDetailRequest(String urlRequest, final Person contact) {
JsonObjectRequest objectRequest1 = new JsonObjectRequest(Request.Method.GET, urlRequest, null,new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
String jsonString = response.toString();
Gson gson = new GsonBuilder().create();
Person.PersonDetail personDetail = gson.fromJson(jsonString, Person.PersonDetail.class);
contact.setContactDetails(personDetail);
isFavorite = personDetail.favorite;

//prepareOptionsMenu(R.menu.menu_main);
buildPage(contact);
}
}, new Response.ErrorListener(){
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(contactDetails.this, error.getMessage(), Toast.LENGTH_LONG).show();

}

});

RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(objectRequest1);

}

最佳答案

I want a star icon to appear full if a key-value returns true from the web service and vice versa

第 1 步:正常创建菜单。但是,有android:visible="false"<item> 上对于明星。

第 2 步:在 onCreateOptionsMenu() 中, 在使用 MenuInflater 之后膨胀菜单,call findItem() on the Menu , 传入你的 star item 的 ID。捕获那个MenuItem在您的 Activity 或 fragment 的某个领域。

第 3 步:当您的 Web 服务调用完成时,返回主应用程序线程,如果需要,call setVisible(true) on the MenuItem , 让星标对用户可见。

IOW,不要试图延迟操作栏项目的创建,因为那样不会很好。相反,根据需要使项目可见和不可见。

关于android - 让 Android 选项菜单等到从 Web 请求返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35248367/

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