2015-01-10 3 views
-3

Я создал представление списка с ArrayAdapter и когда я запускаю его, показывая его мне пустую активность во время выполнения и я не знаю, неправильно:ListView из ArrayAdapter

здесь является MainActivity и ArrayAdapter Классы

public class MainActivity extends Activity { 
    String [] title ; 
    ListView list; 

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

     list = (ListView) findViewById(R.id.list); 
     title = getResources().getStringArray(R.array.titles); 
     list.setAdapter(new MyAdapter(MainActivity.this, title)); 

    } 
} 

class MyAdapter extends ArrayAdapter{ 
    String [] title; 
    Context context; 

    public MyAdapter(Context context, String[] title) { 
     super(context,R.layout.single_row,R.id.img); 
     this.title = title; 
    } 


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

     TextView tv; 
     ImageView iv; 
     View row = convertView; 
     if(row==null) 
     { 
      LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
      row = inflater.inflate(R.layout.single_row, parent, false); 
     } 
      tv = (TextView) row.findViewById(R.id.title); 
      tv.setText(title[position]); 
      iv = (ImageView) row.findViewById(R.id.img); 
      iv.setImageResource(R.drawable.arrow); 

     return row; 
    } 
} 

activity_main.xml, которые содержат ListView

<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:layout_width="fill_parent" 
      android:layout_height="fill_parent" 
      android:id="@+id/list" 
      android:layout_alignParentTop="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" /> 
    </RelativeLayout> 

single_row.xml, который содержит элементы ListView

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent"> 
<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <ImageView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/img" 
     android:src="@drawable/arrow" 
     android:layout_margin="15dp" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="New Text" 
     android:textSize="@dimen/abc_action_bar_stacked_max_height" 
     android:id="@+id/title" 
     android:layout_gravity="center_vertical" /> 
</LinearLayout> 

</LinearLayout> 
+0

извините, если я не добавил ни фото я не имею достаточную репутации –

+0

реализующего класс BaseAdapter гораздо более эффективные для пользовательских ListViews, попробуйте использовать его в качестве ответа Moubeen показывает – mrahmat

+0

Я предполагаю, что есть проблема с вашим xml MainActivity. Не могли бы вы использовать его здесь. – Simar

ответ

0

Измените эту строку кода в своем адаптере.

LayoutInflater inflater = LayoutInflater.from(context); 
+0

та же проблема –

Смежные вопросы