내 응용 프로그램에는 xml 레이아웃 파일이 많이 있습니다. 이제 15 개의 정의 된 숫자가 활동에 포함되는 기능을 추가하고 싶습니다. 활동이 시작될 때마다 무작위로 15 개의 레이아웃을 선택해야합니다. 어떻게해야합니까? 배열에 대해 생각하고 있었지만 xml 파일을 배열 (임의적)에 포함시키는 방법에 대한 좋은 참조를 찾을 수 없었습니다.안드로이드에서 임의의 xml 레이아웃을 표시하는 방법
1
A
답변
6
레이아웃 참조는 int입니다. 당신은 단순히 사용 하나를 선택할 수 있습니다
int[] layouts = new int[] {R.layout.one, R.layout.two, R.layout.three ...};
setContentView(layouts[new Random().nextInt(layouts.length)]);
1
당신은 Application.onCreate 또는 메인은 Activity.onCreate에를 오버라이드 (override) 할 수()를하고 SharedPreference에서 원하는 레이아웃의 리소스 ID를 설정합니다.
public static final String LAYOUT_ID = "random.layout.id";
private static int[] LAYOUTS = new int[] { R.layout.default, R.layout.fancy };
public void onCreate() {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.edit().putInt(LAYOUT_ID, getRandomLayoutId()).commit();
}
private int getRandomLayoutId() {
Random r = new Random(Calendar.getInstance().getTimeInMillis());
return LAYOUTS[r.nextInt(LAYOUTS.length)];
}
이 ID는 setContentView()를 사용하여 앱의 어딘가에서 사용될 수 있습니다.
private static final int DEFAULT_ID = R.layout.default;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
setContentView(getInt(MyApplication.LAYOUT_ID, DEFAULT_ID));
기본 활동에서 수행하는 경우 오리엔테이션 변경 또는 유사한 이벤트에도 새로운 레이아웃을 적용 할 수 있습니다.
관련 문제
- 1. 안드로이드에서 gridview 내에서 임의의 이미지를 표시하는 방법
- 2. 안드로이드에서 레이아웃을 분리하는 방법
- 3. 안드로이드에서 레이아웃을 바꾸는 올바른 방법
- 4. 안드로이드에서 상대 레이아웃을 복제하는 방법?
- 5. RecyclerView에 레이아웃을 표시하는 방법
- 6. 안드로이드에서 비대칭 레이아웃을 만드는 방법
- 7. 이미지가 안드로이드에서 레이아웃을 정의하게하는 방법
- 8. 안드로이드에서 테이블 레이아웃을 정렬하는 방법
- 9. 안드로이드에서 내 xml 상대 레이아웃을 다시 사용하는 방법
- 10. 임의의 기사를 표시하는 방법
- 11. 안드로이드에서 pdf를 표시하는 방법
- 12. 안드로이드에서 임의의 XML을 일반 객체로 읽는 방법?
- 13. 안드로이드에서 레이아웃을 동적으로 변경하기
- 14. 안드로이드에서 Arraylist 객체를 테이블 형식으로 표시하는 방법
- 15. 안드로이드에서 전체 상대적 레이아웃을 회전하는 방법
- 16. 안드로이드에서 이런 유형의 레이아웃을 만드는 방법
- 17. 안드로이드에서 그리드와 같은 레이아웃을 만드는 방법
- 18. 안드로이드에서 테이블 레이아웃을 메일로 보내는 방법
- 19. 안드로이드에서 히브리어로 힌트를 표시하는 방법
- 20. 안드로이드에서 원형 차트를 표시하는 방법
- 21. 안드로이드에서 목록보기를 효율적으로 표시하는 방법
- 22. 안드로이드에서 plist 파일을 표시하는 방법
- 23. 안드로이드에서 주어진 이미지의 xml 레이아웃을 디자인하는 방법은 무엇입니까?
- 24. 안드로이드에서 저는 2 xml 레이아웃을 다른 오리엔테이션을위한 하나의 액티비티로 호출하려고합니다.
- 25. 안드로이드에서 임의의 값을 반환
- 26. 안드로이드에서 XML 구문 분석
- 27. 안드로이드에서 임의의 반복없이 arraylist를 얻는 방법
- 28. 안드로이드에서 상대 레이아웃을 동적으로 생성하기
- 29. 안드로이드에서 XML 구문 분석하는 방법?
- 30. 안드로이드에서 XML 파일을 업그레이드하는 방법
@downvote, 의견이 있으십니까? – njzk2
-1 : 바로 지금 당신은 가능한 int로 0, 1, 2를 제공합니다. 이것은 레이아웃 ID와 반드시 같을 필요는 없습니다. 'setContentView (layouts [new Random(). nextInt (layout.length)]); ' – tilpner
나는 당신의 제안과 비슷한 방식으로 이미 시도해 보았고 모든 레이아웃을 무작위로 보여주는 데 효과적이다. 하지만 어떻게 동적으로 (?) 내 100 레이아웃 중 임의의 선택 (예를 들어 15)으로 배열에 그것을 정의합니까? – jay