Android 是否使用ArrayAdapter return black活动仅在ListView中显示图像?
我只想将图像添加到ListView,我创建了Activity和ArrayAdapter,如下所示 活动和阵列适应课程Android 是否使用ArrayAdapter return black活动仅在ListView中显示图像?,android,listview,android-arrayadapter,Android,Listview,Android Arrayadapter,我只想将图像添加到ListView,我创建了Activity和ArrayAdapter,如下所示 活动和阵列适应课程 public class Main extends ActionBarActivity{ ListView icons ; ArrayList <Drawable> items ; Adapter adapter ; @Override public void onCreate(Bundle savedInstanceStat
public class Main extends ActionBarActivity{
ListView icons ;
ArrayList <Drawable> items ;
Adapter adapter ;
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
setContentView(R.layout.main);
icons = (ListView) findViewById(R.id.icon);
items = new ArrayList<Drawable>() { };
items.add(getResources().getDrawable(R.drawable.r));
items.add(getResources().getDrawable(R.drawable.b));
items.add(getResources().getDrawable(R.drawable.g));
adapter = new Adapter(this,0,items);
icons.setAdapter(adapter);
}
}
class Adapter extends ArrayAdapter<Drawable>{
ArrayList<Drawable> items ;
ImageView image ;
public Adapter(Context c,int resources,ArrayList<Drawable>list){
super(c,resources,list);
this.items = list ;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = LayoutInflater.from(getContext()).inflate(R.layout.images, parent, false);
}
image= (ImageView) convertView.findViewById(R.id.image);
image.setBackground(items.get(position));
return convertView;
}
}
public类Main扩展了ActionBarActivity{
列表视图图标;
数组列表项;
适配器;
@凌驾
创建时的公共void(Bundle savedInstanceState、PersistableBundle persistentState){
super.onCreate(savedInstanceState、persistentState);
setContentView(R.layout.main);
icons=(ListView)findViewById(R.id.icon);
items=newarraylist(){};
add(getResources().getDrawable(R.drawable.R));
add(getResources().getDrawable(R.drawable.b));
add(getResources().getDrawable(R.drawable.g));
适配器=新适配器(此,0,项);
图标。设置适配器(适配器);
}
}
类适配器扩展了ArrayAdapter{
数组列表项;
图像视图图像;
公共适配器(上下文c、int资源、ArrayList){
超级(c、资源、列表);
此项=列表;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
if(convertView==null){
convertView=LayoutInflater.from(getContext()).flate(R.layout.images,parent,false);
}
image=(ImageView)convertView.findViewById(R.id.image);
image.setBackground(items.get(position));
返回视图;
}
}
images.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="350dp"
android:id="@+id/images" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/icon"
android:layout_gravity="center_horizontal" />
main.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:layout_width="match_parent"
android:layout_height="350dp"
android:id="@+id/images" />
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/icon"
android:layout_gravity="center_horizontal" />
我得到的是黑白活动,这个代码怎么了
提前谢谢 更改这些行:
image= (ImageView) convertView.findViewById(R.id.image);
image.setBackground(items.get(position));
到
改变
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/icon"
android:layout_gravity="center_horizontal" />
到
从活动的
onCreate中删除第二个参数:
使用
而不是
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
//...
}
此外,如果您发现错误的ImageView id,请在适配器的getView()
中将R.id.image
替换为R.id.images
。并将setBackground()
更改为setImageDrawable()
@Override
public void onCreate(Bundle savedInstanceState, PersistableBundle persistentState) {
super.onCreate(savedInstanceState, persistentState);
//...
}