我很难理解如何进行这里介绍的简单对话框示例:https://material.io/components/dialogs/android#types
我想做同样的事情(项目列表和添加另一个项目的按钮)。
我已经做了物品清单。。
public void onChangeHouseShare(MenuItem item) {
Log.i(TAG, token);
HouseshareAPI.getInstance(this).getHouseshares(
response -> {
Log.i(TAG, response.toString());
try {
List<Houseshare> houseshareList = new ArrayList<>(response.length());
CharSequence[] items = new CharSequence[response.length() + 1];
for (int i = 0; i<response.length(); i++) {
JSONObject json = response.getJSONObject(i);
JSONObject userJson = json.getJSONObject("manager");
User manager = new User(
userJson.getInt("userId"),
userJson.getString("pseudo"),
userJson.getString("email"),
userJson.getString("firstname"),
userJson.getString("lastname"));
houseshareList.add(new Houseshare(json.getInt("houseshareId"), json.getString("name"), manager));
items[i] = json.getString("name");
}
Log.i(TAG, "JSON Array size " + response.length());
Log.i(TAG, "Array size " + items.length);
Log.i(TAG, "List size " + houseshareList.size());
items[items.length - 1] = "Create a new houseshare";
AtomicReference<Houseshare> selectedHouseshare = new AtomicReference<>();
new MaterialAlertDialogBuilder(this)
.setTitle("Choose an house share here")
.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Log.i(TAG, String.valueOf(which));
selectedHouseshare.set(houseshareList.get(which));
SharedPreferences sharedPref = MainActivity.this.getSharedPreferences(MainActivity.this.getString(R.string.global_preference_key_file), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(MainActivity.this.getString(R.string.default_selected_houseshare_id), String.valueOf(selectedHouseshare.get().getHouseshareId()));
editor.apply();
MainActivity.this.invalidateOptionsMenu();
}
})
.show();
} catch (JSONException e) {
e.printStackTrace();
}
},
errorResponse -> {
if (errorResponse.networkResponse != null) {
String jsonError = new String(errorResponse.networkResponse.data);
Log.e(TAG, jsonError);
} else {
errorResponse.printStackTrace();
Toast.makeText(
this,
"Network error, server unreachable. Please try again later.",
Toast.LENGTH_LONG).show();
Log.e(TAG, "Network error, server unreachable.");
}
}
);
}
但接下来我该怎么办呢?如何使用文本条调用片段或其他对话框来编写新项?有什么好的例子可以证明这一点吗?
顺便说一下,我使用移动导航来管理片段和导航抽屉。
谢谢!
暂无答案!
目前还没有任何答案,快来回答吧!