2016-10-12 2 views
0

응용 프로그램에서 간단한 항목 목록 (이 경우 이름)을 만들고 싶습니다. 저는 Android Studio를 사용하고 있습니다. 내가 아는 한 올바르게 모든 것을 작성했으며 어디에서 잘못되었는지 알지 못합니다.Android Studio에서 내 목록이 채워지지 않는 이유는 무엇입니까?

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.scott.exampleapp.test_page"> 

    <ListView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/list_view" 
     android:layout_centerVertical="true" 
     android:layout_alignParentStart="true" /> 
</RelativeLayout> 

그리고 내 해당 자바 파일 : 여기 내 XML 파일의

package com.example.scott.exampleapp; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.ArrayAdapter; 
import android.widget.ListView; 

public class test_page extends AppCompatActivity { 

    String[] exampleArray = new String[]{"Scott", "Steffi", "Liam", "Jonny", "Zac"}; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_test_page); 

     ListView listView = (ListView) findViewById(R.id.list_view); 

     ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.activity_test_page, exampleArray); 

     listView.setAdapter(adapter); 
    } 
} 
+2

사용'android.R.layout을 .simple_list_item_1''ArrayAdapter() 내부의'R.layout.activity_test_page' 대신 –

답변

3

당신의 어댑터에 잘못된 레이아웃을 전달하는이, 그것은 inbuild simple_list_item_1 배치해야한다.

사용이 여기

ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, exampleArray); 

new ArrayAdapter<String>(this, R.layout.activity_test_page, exampleArray); 당신이 활동 레이아웃을 사용하는,하지만 당신은 inbuild 레이아웃을 사용하거나 별도의 하나를 만들 수 있습니다 있도록 어댑터가 따라 listitems을 채우는 것이 자신의 레이아웃을 사용 (추가 코딩 + 여분의 아름다움)

String[] exampleArray = new String[]{"Scott", "Steffi", "Liam", "Jonny", "Zac"}; 

을 할 필요가 없습니다 게다가 당신이 기지를 사용할 수 있습니다 당신은 ArrayAdapter와 새로운 목록 항목 레이아웃 또는 사용의 기본 android.R.layout.simple_list_item_1을 만들어야하거나 목록 항목 레이아웃으로 활동 레이아웃을 사용할 수 없습니다

String[] exampleArray = {"Scott", "Steffi", "Liam", "Jonny", "Zac"}; 
+0

흠, 저도 시도해 봤습니다. 오류 "기호를 해결할 수 없습니다." 이것이 실제로 의미하는 것은 무엇입니까? –

+0

@ Yoman 어떤 기호? , 전체 오류 게시 및 결과 초 단위 –

+0

오류의 정확한 단어는 "기호 'simple_list_item_1'을 해결할 수 없습니다."입니다. –

3

초기화와 선언시 심 new String[] :

ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, exampleArray); 
0

각 행에 대한 레이아웃을 만들었습니까? 배열 어댑터의 생성자에서 사용할 레이아웃도 필요합니다.

예를 들어 텍스트 뷰로 레이아웃을 생성하십시오. 생성자에 사용 official doc

두번째 파라미터로 읽을 수있는 바와 같이

0

이다

자원 INT : 뷰를 인스턴스화 할 때 사용하는 텍스트 뷰를 포함하는 레이아웃 파일에 대한 자원 ID는.

당신의 품목 레이아웃을 사용하는 대신 R.layout.activity_test_page

뭔가 같은 :

ArrayAdapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, exampleArray); 

또는 사용자 정의 레이아웃을 사용하려면 :

ArrayAdapter adapter = new ArrayAdapter<String>(this, R.layout.my_item_layout, exampleArray); 
관련 문제