here 질문에 감동하여 동적으로 생성 된 팝업 메뉴 항목에 대한 리소스 ID를 만들 가능성을 알고 싶습니다.Android : 동적으로 팝업 메뉴 항목의 리소스 ID 할당
약간의 배경 : 내 팝업 메뉴에는 특정 디렉토리에서 찾은 모든 파일에 대한 항목 외에도 "새 파일 만들기"항목이 포함되어 있습니다. 문제. 응용 프로그램이 시작될 때 얼마나 많은 파일이 디렉토리에 있는지 모르기 때문에 xml 파일에 이러한 메뉴 항목을 하드 코딩 할 수 없으므로 리소스 ID가 없습니다. .
View menuItemView = getActivity().getWindow().getDecorView().findViewById(R.id.item_id);
I see이 getMenu의 한 오버로드 버전() (추가)를 받아들이는 : 나는 개별 항목의 리소스 ID에서보기 변수를 만들 수 있도록 나는 나의 팝업 메뉴의 항목에 대한 리소스 ID를 할당 즉, 필요 itemID를 매개 변수로 사용합니다. 이 매개 변수를 런타임 중에 int로 설정 한 다음 나중에 위의 목적을 위해 리소스 ID로 참조 할 수 있습니까?
이 내 완료 팝업 메뉴 코드, 전시 I 동적 메뉴 항목을 생성하는 방법 :
popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
@Override
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId()) {
case R.id.new_track:
trackSelectButton.setText("...");
Toast.makeText(getActivity(), "Name your new track.", Toast.LENGTH_SHORT).show();
txtTrackName.setVisibility(txtTrackName.VISIBLE);
return true;
default:
selectedTrackName = (item.getTitle().toString());
trackSelectButton.setText(selectedTrackName);
for (int i = 0; i < trackListing.length; i++) { //add a menu item for each existing track
if (trackListing[i].getName().equals(selectedTrackName)) {
selectedTrack = trackListing[i];
AudioRecorder.setFile(selectedTrack);
}
}
return true;
}
}
});
MenuInflater popupInflater = popup.getMenuInflater();
popupInflater.inflate(R.menu.popup_menu_track_selection, popup.getMenu());
popup.show();
가 어떻게 동적으로 팝업 메뉴 항목에 대한 자원 ID를 생성 할 수 있습니까? (일명 xml 파일없이 자원 ID 할당)