0

Итак, мне нужно объявить здесь несколько вещей, и я полностью потерялся. Все вещи, которые отсутствуют прокомментированы в коде, и я использую этот пример, чтобы сделать свою работу BaseAdapter: http://www.piwai.info/android-adapter-good-practices/У меня проблемы с BaseAdapter

Вот код: `общественного класса MainActivity расширяет активность {

ListView mListView; 
String[] mTitle={"item1","item2"}; 
String[] mDetail={"info1","info2"}; 
int[] mImage ={R.drawable.ic_launcher,R.drawable.ic_launcher}; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    mListView=(ListView)findViewById(R.id.list); 
    mListView.setAdapter(new dataListAdapter(mTitle, mDetail, mImage)); 
} 

class dataListAdapter extends BaseAdapter { 

    private List<> //this needs to be finished 

    String[] Title, Detail; 
    int[] imge; 

    dataListAdapter() { 
     Title = null; 
     Detail = null; 
     imge=null; 
     context = null; 
    } 

    public dataListAdapter(String[] text, String[] text1,int[] text3) { 
     Title = text; 
     Detail = text1; 
     imge = text3; 
     context = null; 
    } 

    public final Context context; 

    public dataListAdapter(Context mContext){ 
     this.context = mContext; 
    } 

    public int getCount() { 
     // TODO Auto-generated method stub 
     return Title.length; 
    } 

    public Object getItem(int arg0) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    public long getItemId(int position) { 
     // TODO Auto-generated method stub 
     return position; 
    } 

    public View getView(int position, View convertView, ViewGroup parent) { 



     TextView titleView, detailView; 
     ImageView imageView; 

     if(convertView == null){ 
      convertView = LayoutInflater.from(context).inflate(R.layout.custom, parent,false); 

      titleView = (TextView) convertView.findViewById(R.id.title); 
      detailView = (TextView) convertView.findViewById(R.id.detail); 
      imageView = (ImageView) convertView.findViewById(R.id.image); 
      convertView.setTag(R.id.title, titleView); 
      convertView.setTag(R.id.detail, detailView); 
      convertView.setTag(R.id.image, imageView); 
     }else{ 
      titleView = (TextView) convertView.getTag(R.id.title); 
      detailView = (TextView) convertView.getTag(R.id.detail); 
      imageView = (ImageView) convertView.getTag(R.id.image); 
     } 

     /*Something goes here */ = getItem(position); 

     //and here all needs to be declared 
     titleView.setText(); 
     detailView.setText(); 
     imageView.setImageDrawable(); 

     return convertView; 
    } 
}` 

main.xml

<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:paddingLeft="@dimen/activity_horizontal_margin" 
      android:paddingRight="@dimen/activity_horizontal_margin" 
      android:paddingTop="@dimen/activity_vertical_margin" 
      android:paddingBottom="@dimen/activity_vertical_margin" 
      tools:context=".MainActivity"> 

<ListView 
    android:id="@+id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" > 

</ListView> 

и custom.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
      android:orientation="vertical" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" > 

    <LinearLayout 
     android:layout_width="255dp" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/title" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="Video1" 
       android:textAppearance="?android:attr/textAppearanceLarge" 
       android:textColor="#339966" 
       android:textStyle="bold" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <TextView 
       android:id="@+id/detail" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:text="video1" 
       android:textColor="#606060" /> 
     </LinearLayout> 
    </LinearLayout> 

    <ImageView 
     android:id="@+id/img" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/ic_launcher" /> 

</LinearLayout> 

+1

, что ваш вопрос? –

+0

Я не знаю, что мне нужно написать/объявить в коде, используя пример, который я предоставил. Я понимаю, что мне не хватает, потому что разные имена переменных – robigroza

ответ

1

Поскольку вы используете массивы, а не пользовательские объекты, вы можете игнорировать getItem.

Вот как вы можете использовать массивы:

titleView.setText(Title[position]); 
detailView.setText(Detail[position]); 
imageView.setImageDrawable(context.getResources().getDrawable(imge[position])); 

Edit:

В конструкторе вы не установить контекст так это нуль. Вот как это должно быть:

public dataListAdapter(String[] text, String[] text1,int[] text3, Context ctx) { 
    Title = text; 
    Detail = text1; 
    imge = text3; 
    context = ctx; 
} 

И в вашем onCreate создать адаптер, как это:

mListView.setAdapter(new dataListAdapter(mTitle, mDetail, mImage, this)); 
+0

Итак, мое приложение запустилось, но оно сработало. 12186-12186/com.robigroza.justlisttest E/AndroidRuntime: FATAL EXCEPTION: main java.lang.NullPointerException – robigroza

+0

@robigroza обновил мой ответ. – Simas

+0

К сожалению, мое приложение снова разбилось. :/ Я собираюсь опубликовать еще один вопрос, но спасибо вам за помощь! – robigroza