这个类扩展了baseadapter
public View getView(int position, View convertView, ViewGroup parent) {
if (!imagepath[position].toString().equals("no picture")) {
imageLoader.DisplayImage(imagepath[position], imageview);
}
}
public void DisplayImage(String url, ImageView imageView) {
imageViews.put(imageView, url);
Bitmap bitmap = memoryCache.get(url);
if (bitmap != null) {
imageView.setImageBitmap(bitmap);
} else {
queuePhoto(url, imageView);
}
}
Run Code Online (Sandbox Code Playgroud)
假设第一个视图应首先检查显示,但现在检查后显示.
if (!imagepath[position].toString().equals("no picture")) {
titletext.setPadding(imageview.getWidth() + 5, 0, 0, 0);
datetext.setPadding(imageview.getWidth() + 5, 0, 0, 0);
imageview.setVisibility(View.VISIBLE);
imageLoader.DisplayImage(imagepath[position], imageview);
} else {
imageview.setVisibility(View.INVISIBLE);
imageview.setImageDrawable(null);
titletext.setPadding(0, 0, 0, 0);
datetext.setPadding(0, 0, 0, 0);
}
titletext.setText(title[position].toString());
categorytext.setText(category[position].toString()); …Run Code Online (Sandbox Code Playgroud) 我正在实现列表视图,我有用户BaseAdapter class.i我试图从数组列表中的holder文本视图字段中setText但没有任何成功.Problem在getView方法的HashMap<String, ArrayList<String>> map = list.get(position);
holder.txtFirst.setText(map.get(FIRST_COLUMN).toString()); 部分.
编辑:
我的主要活动类(postExecute方法),我在其中设置列表适配器类的键和值.代码如下:
protected void onPostExecute(ArrayList<ArrayList<String>> result) {
ArrayList<String> conceptID = new ArrayList<String>(result.get(0));
ArrayList<String> conceptDesc = new ArrayList<String>(result.get(1));
listForSearchConcepts = new ArrayList<HashMap<String,ArrayList<String>>>();
HashMap<String, ArrayList<String>> temp = new HashMap<String,ArrayList<String>>();
temp.put(FIRST_COLUMN,conceptID);
listForSearchConcepts.add(temp);
temp.put(SECOND_COLUMN,conceptDesc);
listForSearchConcepts.add(temp);
listviewAdapter adapter = new listviewAdapter(MainActivity.this, listForSearchConcepts);
listView.setAdapter(adapter);
}`
Run Code Online (Sandbox Code Playgroud)
但下面是我的适配器类代码:
public class listviewAdapter extends BaseAdapter
{
public ArrayList< HashMap < String,ArrayList < String > > > list;
Activity activity;
public listviewAdapter(Activity activity, ArrayList<HashMap<String,ArrayList<String>>> listForSearchConcepts) {
super();
this.activity = activity; …Run Code Online (Sandbox Code Playgroud) 我知道你可以扩展BaseAdapter并覆盖getViewTypeCount()和getItemViewType(postion)方法,并以这种方式获得各种行布局.
但是,我刚刚完成了一个扩展ArrayAdapter的教程,并且getView(int position, View convertView, ViewGroup parent)是唯一的方法覆盖.
在我看来,只是为了遵循这种方法并使用位置可能使用if/switch来确定给定行的膨胀视图.
这是一个正确的假设还是这种方法存在问题?
干杯
我正在添加 中的所有项目arrayList,现在我只想在我的回收站视图中显示 10 个项目并单击更多 10 个等等。我想使用相同的arrayList.
在我的应用程序添加checkbox有ListView,我也给限制了checkbox,用户不能超过5个选择checkbox,但问题是我的滚动选择checkbox得到选中下面是我的代码段,任何一个可以帮助我这个
public class CustomAdapter extends BaseAdapter {
private LayoutInflater inflater = null;
Context context;
String rup = "\u20B9";
private ArrayList<ModelPooja> listData;
boolean checked[];
public CustomAdapterPooja(Context mainActivity, ArrayList<ModelPooja> listData) {
// TODO Auto-generated constructor stub
context = mainActivity;
this.listData = listData;
inflater = (LayoutInflater) context.
getSystemService(Context.LAYOUT_INFLATER_SERVICE);
checked = new boolean[listData.size()];
for (int i = 0; i < checked.length; i++) {
checked[i] = listData.get(i).isselected;
}
}
@Override
public int getCount() {
// …Run Code Online (Sandbox Code Playgroud) 我试图传递一些动态数据来BaseAdapter显示它listview.(使用ArrayList),我当前的代码给我以下错误:
错误:
error: cannot find symbol variable ArrayList
error: cannot find symbol variable String
Run Code Online (Sandbox Code Playgroud)
指向这部分代码(ArrayList <String>):
CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), ArrayList<String> NameArrayList, ArrayList<String> IconArrayList);
Run Code Online (Sandbox Code Playgroud)
我检查了Arraylist大小,发现IconArrayList和NameArrayList不是空的,使用int itemCount = IconArrayList.size();
但是如果我将下面的静态字符串数组传递给Baseadapter,那么它会在listview上显示数据!
String NameArrayList[] = {"USA", "China", "australia", "Portugle", "Norway", "NewZealand"};
String IconArrayList[] = {"http://awebsite.com/icons/usa.png", "http://awebsite.com/icons/china.png", "http://awebsite.com/icons/australia.png", "http://awebsite.com/icons/portugle.png", "http://awebsite.com/icons/norway.png", "http://awebsite.com/icons/new_zealand.png"};
CustomAdapter customAdapter = new CustomAdapter(getApplicationContext(), NameArrayList, IconArrayList);
Run Code Online (Sandbox Code Playgroud)
你能帮助我解决上面的错误并成功地将arraylist传递给baseAdapter,以便显示它.谢谢你提前.
MainActivity.java:
import android.app.Activity;
import android.os.Bundle;
import android.widget.ListView;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Toast;
import android.os.StrictMode;
import android.os.StrictMode.ThreadPolicy.Builder;
import …Run Code Online (Sandbox Code Playgroud) 我有一个使用自定义BaseAdapter(MyBaseAdapter)填充的ListView:
public class MyBaseAdapter extends BaseAdapter
{
private View renderer;
List<MyItemModel> items;
public MyBaseAdapter(View renderer) {
this.renderer = renderer;
}
public void setModel(List<MyItemModel> items)
{
this.items = items;
notifyDataSetChanged();
}
@Override
public int getCount()
{
return items != null ? items.size() : 0;
}
@Override
public Object getItem(int position)
{
return items != null ? items.get(position) : null;
}
@Override
public long getItemId(int position)
{
return items != null ? items.get(position).id : -1;
}
@Override
public View getView(int position, View …Run Code Online (Sandbox Code Playgroud) 可以有人解释我,为什么我在尝试setAdapter时有java.lang.NullPointerException?
当我尝试设置适配器时,我的arraylist已经填满了.我做错了什么?
谢谢!
activity_view_list.xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical">
<ListView
android:id="@+id/lvView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
</ListView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
item.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
<ImageView
android:id="@+id/ivImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher">
</ImageView>
<LinearLayout
android:id="@+id/linearLayout1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="5dp"
android:layout_weight="1"
android:orientation="vertical">
<TextView
android:id="@+id/tvDescr"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:text=""
android:textSize="20sp">
</TextView>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我的产品类
package com.shvedchenko.skleroshop;
/**
* Created by dima on 14.08.13.
*/
public class Product {
String name;
int image;
Product(String _describe, int _image) {
name = _describe;
image = _image;
}
} …Run Code Online (Sandbox Code Playgroud) 我正在尝试将可点击列表添加到我的第一个带有自定义适配器的 android 应用程序中,一切都很好,但是当我使用时
mItemList.setOnItemClickListener(new android.widget.AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
// TODO Auto-generated method stub
Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_LONG).show();
Log.d("error", "error here");
}
});
Run Code Online (Sandbox Code Playgroud)
但是没有响应没有吐司没有错误尽管列表显示良好
定制适配器
public class ItemListAdapter extends BaseAdapter {
public Context context;
public ArrayList<ItemModel> items;
.....
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View grid;
LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if (convertView == null ) {
grid = new View(context);
grid = mInflater.inflate(R.layout.item, null);
Button bt = …Run Code Online (Sandbox Code Playgroud) android ×9
baseadapter ×9
arraylist ×4
listview ×3
java ×2
adapter ×1
hashmap ×1
imageview ×1
onitemclick ×1