android 개발 중 @ + id / 와 android: id 용법 의 차이 점 은?
3447 단어 xml안 드 로 이 드 개발ListViewlayout배치
우선 코드 보기:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ListView
android:id="@id/android:list"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="false"
android:scrollbars="vertical" >
</ListView>
</LinearLayout>
상기 코드 에서 시 뮬 레이 터 가 실 행 될 때 이상 이 발생 합 니 다: java. lang. Runtime Exception: Your content must have a ListView whose id attribute is' android. R. id. list.
다음은 Activity 의 코드 를 살 펴 보 겠 습 니 다.
public class ListViewActivity extends ListActivity {
@Overrided
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// layout ListView,
id @android:id/list
// Your content must have a ListView whose id attribute is 'android.R.id.list"
// 。 layout, layout, listview
setContentView(R.layout.listview);
}
}
여기 서 물 려 받 은 것 은 ListActivity 이지 원래 의 Activity 가 아 닙 니 다.ListActivity 는 데이터 원본 에 연결 되 어 있 으 며 이 데 이 터 를 표시 하 는 Activity 입 니 다.ListActivity 는 데이터 원본 의 바 인 딩 과 디 스 플레이 를 실현 하기 위해 listview 대상 을 가지 고 있 습 니 다. 보통 array 나 검색 결 과 를 가 진 cursor ListActivity 자체 에 기본 레이아웃 이 있 습 니 다. 전체 화면 을 포함 하 는 list 가 있 습 니 다.기본 레이아웃 을 사용 하려 면 onCreate () 에 setContentView () 라 는 문장 을 주석 해 야 합 니 다.하지만 레이아웃 을 맞 추 려 면 레이아웃 파일 을 만 들 고 onCreate () 에서 setContenttView () 를 호출 하여 이 레이아웃 을 지정 할 수 있 습 니 다. 위의 XML 코드 와 같은 id 가 있어 야 합 니 다.정확 한 코드: 안 드 로 이 드: id = "@ id / android: list" - 수정 - > 안 드 로 이 드: id = "@ 안 드 로 이 드: id / list" 를 수정 하면 시 뮬 레이 터 가 실 행 됩 니 다.
다음은 안 드 로 이 드 API 문서 자 료 를 조회 하여 안 드 로 이 드: id = "@.. /.." x 관련 용법 설명 을 다음 과 같이 기록 합 니 다. Android 시스템 의 구성 요 소 는 int 형식의 값 으로 표시 해 야 합 니 다. 이 값 은 구성 요소 탭 의 id 속성 값 입 니 다.id 속성 은 자원 형식의 값 만 받 습 니 다. 즉, @ id / result, @ + id / user 등 @ 으로 시작 해 야 합 니 다.@ 뒤에 '+' 를 사용 하면 레이아웃 파일 을 수정 하고 저장 하면 R. 자바 파일 에 해당 하 는 int 형식 변 수 를 자동 으로 생 성 합 니 다.변수 이름 은 '/' 뒤의 값 입 니 다. 예 를 들 어 @ + id / user 는 R. 자바 파일 에서 int user = value (value 는 16 진수 입 니 다. 예 를 들 어 R. 자바 에 있 는 Public static final int user = 0x7f 030003;).user 가 R. 자바 에 같은 이름 의 변수 가 존재 한다 면 새로운 변 수 를 만 들 지 않 고 이 구성 요 소 는 존재 하 는 변수의 값 을 사용 합 니 다.@ + id / name 형식 을 사용 하면 R. java 에 name 변수 가 존재 할 때 이 구성 요 소 는 이 변수의 값 을 표지 로 사용 합 니 다.이 변수 가 존재 하지 않 으 면 새로운 변 수 를 추가 하고 해당 변수 에 해당 하 는 값 을 부여 합 니 다 (중복 되 지 않 습 니 다).Android 시스템 에서 구성 요소 의 id 속성 이 자원 id 이면 됩 니 다. @ drawable / icon, @ string / ok, @ + string / you 등 이미 존재 하 는 모든 자원 id 값 을 설정 할 수 있 습 니 다.물론 안 드 로 이 드 시스템 에 존재 하 는 자원 id 도 설정 할 수 있 습 니 다. 예 를 들 어 제 가 만난 @ id / android: list, 그러면 이 안 드 로 이 드 는 무슨 뜻 입 니까? 실제로 이 안 드 로 이 드 는 시스템 의 R 류 (R. 자바 파일 에서) 가 있 는 package 입 니 다.초보 자 들 이 설명 @ + id / 와 android: id 쓰기 의 차이 에 대한 개술 이 정확 하지 않 을 수도 있 지만 이것 은 개인 학습 과정 만 기록 하 는 것 입 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
XML이란 무엇입니까?이것은 저장, 검색 및 공유할 수 있는 형식으로 데이터를 저장하는 강력한 방법입니다. 가장 중요한 것은 XML의 기본 형식이 표준화되어 있기 때문에 시스템이나 플랫폼 간에 로컬 또는 인터넷을 통해 XML을 공유하거나...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.