Я по-прежнему очень новичок в разработке приложений, поэтому, вероятно, это очень глупый вопрос, но я не могу найти правильный ответ (или, по крайней мере, тот, который я могу понять, имея очень ограниченное знание Java).Пользовательский адаптер массива, возвращающий пустой экран?
Я использую настраиваемый ArrayAdapter под названием ListRow. Он отлично работает с обычной 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>
Если вы можете, пожалуйста, используйте маленькие слова со мной лол, Java, оказалось трудно понять, для меня, а также попытайтесь объяснить как можно больше. Заранее спасибо!
ЦИФРОВОЙ ИЗ! Так что я просто положил вас на ад. Макет, содержащий элементы списка, называется list_item, а не list_view. Однако я многому научился здесь, так что СПАСИБО ВСЕ ОЧЕНЬ МНОГО! Я хотел бы, чтобы я мог помочь вам, ребята ...
Мораль этого вопроса? ПРОВЕРЬТЕ ВАШИМ НАЗВАНИЕМ!
Эта ссылка вам поможет. Он содержит код для пользовательского списка в виде списка [1 ]: http: // stackoverflow.com/questions/7193741/need-help-for-on-click-listener-for-android-custom-listview – sagar
Спасибо за подсказку, но, как я уже сказал, я очень новичок в java и размещаю что-то вроде этого не чтобы помочь мне, потому что я едва знаю, что я ищу ... Я буду продолжать искать более описательные примеры – Andrew