これはSO Q hereの続きですが、まだ何かが欠けています。
リスト ビューの JSONObject からマップされたアイテムを取得する方法がわかりません。HashMap キーの値は次のとおりです。
map.put(TAG_RES_FILE, resFile);
そして、その文字列を私のonItemClick(){int passResFile = getResources().getIdentifier(TAG_RES_FILE, "raw", "com.andaero.app");}
以下のメソッドにタグ名を入れることで、システムはそのアイテムの位置から自動的にそれを引き出すと思いました-明らかにそうではありません。では、どうやって手に入れるの??ありがとうございます。
編集: log.i() を追加して、クリックされた位置にある値を確認すると、次のように返されます。
getIdentifier(11925): {isRawRes=true, title=Advisory Circulators, label=AC, _id=1, resFile=advisory_circulators_sort_list, description=規制や要件に準拠するための方法、手順、実践などのガイダンスを提供します。, containerID=R .id.listContainer}
それは
resFile=advisory_circulators_sort_list
それは私が取得する必要があるものです - どうすればいいですか??
これはリスナー全体です。
public void onItemClick(AdapterView<?> parent, View view, int pos, long id) {
MainActivity.mLayout.toggleSidebar();
setHasOptionsMenu(true);
FragmentManager fm = getFragmentManager();
final FragmentTransaction lcFT = fm.beginTransaction();
lcFT.setCustomAnimations(R.anim.slide_in, R.anim.hyperspace_out, R.anim.hyperspace_in, R.anim.slide_out);
final Bundle args = new Bundle();
Object o = lv.getItemAtPosition(pos);
String resFile = (String) o.toString();
int passResFile = getResources().getIdentifier(TAG_RES_FILE, "raw", "com.andaero.app");
args.putInt("KEY_RES_FILE", passResFile);
boolean isRawRes = true;
args.putBoolean("KEY_IS_RAW_RES", isRawRes);
Log.i("getIdentifier", resFile );
// Delayed to improve animations
final Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
ListViewFragment lvf = new ListViewFragment();
lcFT.replace(R.id.listContainer, lvf).commit();
lvf.setArguments(args);
}
}, 300);
}