كيف يمكنني إنشاء الرموز للعناصر القائمة في الروبوت ListView؟

StackOverflow https://stackoverflow.com/questions/288044

  •  08-07-2019
  •  | 
  •  

سؤال

وأنا باستخدام ListView لعرض الشاشة الرئيسية لطلبي.
الشاشة الرئيسية هي في جوهرها menu للوصول الى أقسام مختلفة من التطبيق. حاليا، لدي ListView التي تضاف برمجيا في طريقة onCreate المحتويات.

وهنا مقتطف شفرة أن يفعل هذا:

String[] mainItems = {
    "Inbox", "Projects", "Contexts", "Next Actions"
}

@Override
public void onCreate(Bundle icicle) {
    super.onCreate(icicle);
    setContentView(R.layout.main);

    setListAdapter(new ArrayAdapter<String>(
            this, android.R.layout.simple_list_item_1, mainItems));
    registerForContextMenu(getListView());
}

وهكذا القائمة هي في الأساس مجرد حفنة من العقد بالنص الوارد في مجموعة mainItems. وأنا أعلم أنني يمكن أن تخلق تخطيط XML (أي R.layout.mainMenu_item) يحتوي على ImageView وTextView في ذلك، ولكن أنا غير متأكد كيفية تعيين رمز ImageView ل. لقد رأيت أن هناك setImageResouce طريقة (الباحث RESID)، ولكن طريقة لاستخدام هذا عند إنشاء مع ArrayAdapter والتملص لي. هل هناك طريقة أفضل للقيام بذلك؟

هل كانت مفيدة؟

المحلول

وماذا أنا عادة القيام به لListView هو تنفيذ بلدي محول الخاصة من خلال توسيع الطبقة BaseAdapter في متناول يدي. وإحدى الطرق مجردة عليك تنفيذ يكون getView () كما الملصق السابقة الذكر. من هناك يمكنك تضخيم تخطيط يحتوي على ImageView، الحصول على مرجع إلى ذلك باستخدام findViewById، ووضع صورة على كل ما drawable التي قمت بإضافتها إلى الموارد الخاصة بك.

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

    View row = inflater.inflate(R.layout.menu_row, null);

     ImageView icon = (ImageView) row.findViewById(R.id.icon);
     icon.setImageResource(..your drawable's id...);

     return view;
}

نصائح أخرى

ومن مستندات جوجل لArrayAdapter.

<اقتباس فقرة>   

لاستخدام شيء آخر غير TextViews   لعرض مجموعة، على سبيل المثال،   ImageViews، أو الحصول على بعض البيانات   إلى جانب toString () النتائج تملأ   جهات النظر، وتجاوز getView (كثافة العمليات، عرض،   ViewGroup) لإرجاع نوع طريقة العرض   تريد.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top