2015-01-10 108 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包含列表視圖中的元素

<?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類自定義列表視圖,更有效,請嘗試使用它作爲Moubeen的回答顯示 – mrahmat

+0

我猜有問題用你的xml MainActivity。你能把它放在這裏嗎? – Simar

回答

0

更改適配器中的這一行代碼。

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

同樣的問題 –