このトピックに関連する質問は既にあります。
私はすべてのリンクを訪問しましたが、助けにはなりませんでした。MySQLからフェッチし、Volleyライブラリを使用してパラレルにUIを更新してください
私がしようとしているのは、AsyncTaskを使用せずにMySQLから値をフェッチし、UIをパラレルに更新することです。
私は別のアクティビティから取得している一意のIDに基づいて値を取得しています。
私はVolleyライブラリを使用しているので、AsyncTaskは必要ありません。
トーストのデータベースから値を取得していますが、UIを更新できません。ここで
は、どのように非同期的にUIを更新することができます私のクラス
public class DisplayInformationActivity extends Activity implements AppCompatCallback{
private CollapsingToolbarLayout collapsingToolbarLayout;
protected AppCompatDelegate delegate;
protected String UniqueID;
ExpandableListAdapter listAdapter;
ExpandableListView expListView;
List<String> listDataHeader;
HashMap<String,List<String>> listDataChild;
private ProgressDialog loading;
private String Name = "";
private String contact = "";
private String email = "";
protected void onCreate(Bundle savedInstanceState){
UniqueID = getIntent().getStringExtra("uniqueID");
Toast.makeText(this,UniqueID, Toast.LENGTH_LONG).show();
fetchEverything(UniqueID);
super.onCreate(savedInstanceState);
delegate = AppCompatDelegate.create(this,this);
delegate.onCreate(savedInstanceState);
delegate.setContentView(R.layout.displayhallinformation);
Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
delegate.setSupportActionBar(toolbar);
android.app.ActionBar actionBar = getActionBar();
if(actionBar!=null)
actionBar.setDisplayHomeAsUpEnabled(true);
collapsingToolbarLayout = (CollapsingToolbarLayout) findViewById(R.id.collapsing_toolbar);
collapsingToolbarLayout.setTitle(Name);
dynamicToolbarColor();
toolBarTextAppearance();
expListView = (ExpandableListView) findViewById(R.id.expandableListView);
prepareListData();
listAdapter = new ExpandableListAdapter(this,listDataHeader,listDataChild);
expListView.setAdapter(listAdapter);
}
private void fetchEverything(String uniqueID) {
RequestQueue mRequestQueue = AppController.getInstance().getRequestQueue();
mRequestQueue.start();
loading = ProgressDialog.show(this,"Loading Information ...","",false,false);
loading.setCancelable(false);
String url = AppConfig.URL_DisplayInformation+"?"+"uniqueID="+uniqueID;
StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_SHORT).show();
}
});
AppController.getInstance().addToRequestQueue(stringRequest);
}
private void showJSON(String response) {
try{
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(AppConfig.JSON_ARRAY);
JSONObject Data = result.getJSONObject(0);
Name = Data.getString(AppConfig.first_name)+" "+Data.getString(AppConfig.last_name);
contact = Data.getString(AppConfig.contact);
email = Data.getString(AppConfig.email);
}catch (JSONException e){
e.printStackTrace();
}
Toast.makeText(this, Name+" "+contact+" "+email, Toast.LENGTH_LONG).show();
}
private void prepareListData() {
listDataHeader = new ArrayList<>();
listDataChild = new HashMap<String,List<String>>();
//Adding header to expandable list view
listDataHeader.add("Information");
listDataHeader.add("Contact");
//Adding child data
List<String> Information = new ArrayList<>();
Information.add("Name : "+Name);
List<String> contact = new ArrayList<>();
contact.add("Contact Number : "+ contact);
contact.add("Email : "+ email);
//Header child data
listDataChild.put(listDataHeader.get(0),Information);
listDataChild.put(listDataHeader.get(1),contact);
}
private void dynamicToolbarColor() {
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.images);
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
collapsingToolbarLayout.setContentScrimColor(palette.getMutedColor(ContextCompat.getColor(getApplicationContext(),R.color.colorPrimary)));
collapsingToolbarLayout.setStatusBarScrimColor(palette.getMutedColor(ContextCompat.getColor(getApplicationContext(),R.color.colorPrimaryDark)));
}
});
}
private void toolBarTextAppearance() {
collapsingToolbarLayout.setCollapsedTitleTextAppearance(R.style.collapsedappbar);
collapsingToolbarLayout.setExpandedTitleTextAppearance(R.style.expandedappbar);
}
@Override
public void onSupportActionModeStarted(ActionMode mode) {
}
@Override
public void onSupportActionModeFinished(ActionMode mode) {
}
@Nullable
@Override
public ActionMode onWindowStartingSupportActionMode(ActionMode.Callback callback) {
return null;
}
}
のですか?
あなたはToastと同じように簡単にUIを更新できます...試してみるとどうなりますか? –
値が更新されていません。私はタイトルを更新しようとしていますが、アップデートできず、トーストで値を取得できません。 –
また、expandableListViewのUIを更新しようとしています –