2012-03-06 3 views
0

저는 여전히 응용 프로그램 개발에 익숙하지 않으므로 이것은 매우 어리석은 질문입니다. 그러나 나는 올바른 대답을 찾지 못했습니다. (또는 Java에 대한 매우 제한된 지식으로 이해할 수있는 최소한 하나의 대답을 찾지 못했습니다.)빈 화면을 반환하는 사용자 지정 어레이 어댑터?

나는 ListRow라는 사용자 지정 ArrayAdapter와를 사용하고 있습니다. 정규 Activity에서는 정상적으로 작동하지만 ListActivity에서는 작동하지 않습니다.

아래 코드는 내가 사용하고있는 코드의 샘플입니다. 어떤 도움이라도 대단히 감사 드리며 톤을 돕는 것입니다!

ListView mListview; 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
     setListAdapter(new ListRow(this, THEME_NAMES, THEME_ICONS)); 
    getListView().setTextFilterEnabled(true); 
} 

public class ListRow extends BaseAdapter { 
    private Context mContext; 
    private String[] mThemeNames = THEME_NAMES; 
    private int[] mThemeIcons = THEME_ICONS; 


    public ListRow(Context c, String[] t, int[] i) { 
     mContext = c; 
     mThemeNames = t; 
     mThemeIcons = i; 
     mListview=(ListView)findViewById(R.id.list); 
    } 

    @Override 
    public int getCount() { 
     return mThemeNames.length; 
    } 

    @Override 
    public Object getItem(int arg0) { 
     return null; 
    } 

    @Override 
    public long getItemId(int arg0) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View converView, ViewGroup parent) { 
     View List; 
     if(converView==null){ 
      List=new View(mContext); 
      LayoutInflater mLayoutinflater=getLayoutInflater(); 
      List=mLayoutinflater.inflate(R.layout.list_view, parent, false); 
     } else { 
      List = (View)converView; 
     } 
     ImageView imageView = (ImageView)List.findViewById(R.id.image); 
     TextView textView = (TextView)List.findViewById(R.id.text); 
     imageView.setImageResource(mThemeIcons[position]); 
     textView.setText(mThemeNames[position]);  
     return List; 
    } 
} 

그리고 여기, 나는 각 목록 항목

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" > 
    <ImageView 
    android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
    android:scaleType="center" 
    android:id="@+id/image" 
    android:layout_alignParentLeft="true" 
    android:contentDescription="@string/preview" /> 
    <TextView 
     android:id="@+id/text" 
     android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_toRightOf="@id/image" /> 
</RelativeLayout> 

당신이, 롤, 자바는 나를 위해 이해하기 어려운 것으로 밝혀졌다 나와 함께 작은 단어를 사용하시기 바랍니다 할 수있는 경우에 대해 정의한 레이아웃입니다 또한 최대한 많은 것을 설명하려고 노력하십시오. 미리 감사드립니다!

FIGUREED IT OUT! 그래서 저는 여러분 모두를 지옥으로 넘겨 둡니다. 내 목록 항목을 포함하는 레이아웃은 list_view가 아니라 list_item입니다. 그러나 나는 여기에서 많은 것을 배웠다. 그래서 당신 모두를 매우 감사해라! 나는 너희들을 도울 수있는 방법 ...이 질문의

도덕이 있었으면? 레이아웃 이름을 확인하십시오 !!

+0

. 그것은 사용자 지정 목록보기를위한 코드 [1 포함 ] : http : // stackoverflow.com/questions/7193741/need-help-for-on-click-listener-for-android-custom-listview – sagar

+0

팁 주셔서 감사하지만 내가 말했듯이 나는 자바에 매우 익숙하지 않은 것을 게시하고있다. 내가 무엇을보고 있는지 거의 알지 못해서 더 많은 도움이 될 것입니다. 더 자세한 설명을 위해 – Andrew

답변

1

당신은

setListAdapter(new ListRow(this, your_theme_names_array, your_theme_icon_array)); 

당신은 이것에 대한 ArrayAdapter와를 사용할 필요가없는이 방법으로 어댑터를 설정해야합니다, 그것은 방금 편집 문자열

의 배열에 대한 어댑터를 만들기위한

레이아웃 XML에 문제가 없다고 생각합니다.

  • 당신이 질문에 주어진 레이아웃 여부 R.layout.list_view 점을 확인 한

    체크리스트에 의해 하나 아래의 목록을 확인합니다.

  • 어댑터 setListAdapter (새로운 ListRow (this, String [] {}, int [] {})); 그것은 (당신이 의미 중 하나 빈 화면을 얻을 경우 THEME_NAMES 또는 THEME_ICONS가 null 또는 값이 null)
  • 라인 imageView.setImageResource를 제거 (mThemeIcons [위치]) 당신에게 빈 화면이 표시됩니다; 및 textView.setText (mThemeNames [위치]); 이 또한 빈 화면이 나타납니다 (빈 화면이 나타나면 R.layout.list_view에 R.id.image 또는 R.id.text가 포함되지 않음)
+0

을 계속 살펴보고'getView()'의'List = new View (mContext);도 제거하십시오. –

+0

List = new View (mContext)가 필요하다 convertView가 null –

+1

이 아닌 경우, 그는 그의 뷰를 리소스 R.layout.list_view에서 팽창시키고 있으므로, 다른'View' 객체를 만들 필요가 없다. –

0

ArrayAdapter에 mListView를 추가해야합니다. setListAdapter.Only 다음 목록보기의 내용은 당신이 customadapter에서 언급 한 패턴으로 표시 될 것입니다. 나는 목록보기에 추가 한 요소를 볼 수 없습니다.이 링크는 당신을 도울 것입니다

+0

내가 잘못 놓았 으면 좋겠다고 생각한 곳으로 질문을 업데이트했습니다. – Andrew

관련 문제