我不會遇到什麼問題。沒有任何錯誤,程序 完美工作。但是,當我點擊列表中的項目時,它不會執行任何操作。在其他詞 「吐司」 將不會通過在Android Studio中使用自定義適配器的自定義ListView
這我主類:
public class ViewListAct extends ActionBarActivity {
private ListView list;
private final String[] names_1 = {"McDonald's", "Subway", "Pizza Hut", "Burger King"};
private final String[] img_1 = {"mcd", "mcd", "mcd", "mcd"};
private Activity context;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.view_list);
list = (ListView) findViewById(R.id.listview);
AdapterView adapter = new AdapterView(this, img_1, names_1);
list.setAdapter(adapter);
list.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(android.widget.AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(getApplicationContext(), names_1[position], Toast.LENGTH_LONG).show();
}
});
}
這是我的自定義適配器類:
public class AdapterView extends ArrayAdapter<String> {
private Activity context_1;
private String[] names_1;
private String[] img_1;
public AdapterView(Activity context, String[] img, String[] names) {
super(context, R.layout.pic_letf_tv_right, names);
context_1 = context;
this.names_1 = names;
this.img_1 = img;
}
public View getView(int position, View view, ViewGroup parent){
LayoutInflater l_i_f = context_1.getLayoutInflater();
View rv = l_i_f.inflate(R.layout.pic_letf_tv_right, null);
TextView tv_l = (TextView) rv.findViewById(R.id.tv_view);
tv_l.setText(names_1[position]);
ImageView imageView = (ImageView) rv.findViewById(R.id.log_img);
int id = context_1.getResources().getIdentifier(img_1[position], "drawable", context_1.getPackageName());
imageView.setImageResource(id);
return rv;
}
}
這是我的自定義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"
android:clickable="true"
android:orientation="horizontal"
>
<ImageView
android:layout_width="500px"
android:layout_height="500px"
android:id="@+id/log_img"
/>
<TextView
android:id="@+id/tv_view"
android:layout_gravity="center"
android:gravity="center"
android:layout_width="match_parent"
android:layout_height="500px"
android:textColor="#FFFFFF"
android:textSize="18dp"/>
</LinearLayout>
這是我的ListView 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:overScrollMode="always"
tools:context=".ViewList">
<ListView
android:id="@+id/listview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scrollingCache="false"
android:smoothScrollbar="true"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:background="#000000" />
誰能告訴我什麼我做錯了。
決不要和wrap_content.this質疑 – 2015-02-09 09:11:36
檢查這個例子是沒有關係的列表視圖,它可以幫助: http://www.mkyong.com/android/android-listview-example/ – Sayem 2015-02-09 09:13:13
嘗試使用ViewListAct.this而不是getApplicationContext() – 2015-02-09 09:13:21