Это продолжение от SO Q here, но я все еще ничего не вижу.Как получить элемент ListView с Android onItemClick?
Я не знаю, как получить элемент, который был отображен из JSONObject для просмотра списка. Значение ключа HashMap является:
map.put(TAG_RES_FILE, resFile);
И я хотел бы поставить эту строку в мой onItemClick(){int passResFile = getResources().getIdentifier(TAG_RES_FILE, "raw", "com.andaero.app");}
Я думал, помещая имя тега в поле ниже метод, система автоматически вытаскивать бы его из этого положения пункта - очевидно нет. Так как это получается? Thnx.
EDIT: Я добавил log.i(), чтобы увидеть, какие значения находятся в положении, которое щелкнули и возвращает:
getIdentifier (11925): {isRawRes = True, заголовок = консультативное циркуляционные, этикетки = АС, _id = 1, resFile = advisory_circulators_sort_list, описание = Обеспечивает руководство, такие как методы, процедуры и практики для соблюдения правил и требований., 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);
}