当我重新填充我的时候ListView,我会用我的方法调用一个特定的方法Adapter.
问题:
当我打电话updateReceiptsList给我时Adapter,数据会刷新,但我ListView没有反映这一变化.
问题:
ListView我打电话时为什么不显示新数据notifyDataSetChanged?
适配器:
public class ReceiptListAdapter extends BaseAdapter {
public List<Receipt> receiptlist;
private Context context;
private LayoutInflater inflater;
private DateHelpers dateH;
public ReceiptListAdapter(Activity activity, Context mcontext, List<Receipt> rl) {
context = mcontext;
receiptlist = rl;
Collections.reverse(receiptlist);
inflater = (LayoutInflater)activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
dateH = new DateHelpers();
}
@Override
public int getCount() {
try {
int size = receiptlist.size();
return size;
} catch(NullPointerException ex) { …Run Code Online (Sandbox Code Playgroud) 我想知道使用BaseAdapter和之间的区别ArrayAdapter.
我一直在实现我想要的东西ArrayAdapters.
它是否会影响ListView实现它的适配器接口的性能?
而且,最后一个问题是,我能否实现ListView使用其中任何一项所做的任何事情Adapters,或者,在某些情况下,只能使用特定的适配器?
performance android listview android-arrayadapter baseadapter
当您实现SpinnerAdapter时,您将获得getDropDownView,它与getView您需要扩展时的不同之处BaseAdapter.
我想创建这样的自定义ListView:

我想我必须使用,BaseAdapter但我不知道.
我正在向您展示下面的图像,其中行的高度不同我希望行应该具有相同的高度.

在我的程序中,我从XML服务获取数据,我解析并在列表视图上显示结果,但ListView行的高度不同.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:background="@drawable/list_selector"
android:padding="3dip"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="10dp">
<TextView android:layout_height="wrap_content" android:text="ITEM"
android:layout_width="wrap_content" android:id="@+id/txtItem"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="15dip"
android:textStyle="bold"
android:textColor="#040404"></TextView>
<TextView android:layout_height="wrap_content" android:text="MANUFACTURER"
android:layout_width="wrap_content" android:id="@+id/txtItemTwo"
android:textAppearance="?android:attr/textAppearanceMedium"
android:textSize="14dip"
android:textColor="#FF7F50"
></TextView>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我已经设定了高度
机器人:layout_height = "10dp"
但是在listView上进行diplaying时仍然不一样.
这是我为getVieew定制的适配器: -
public class MyEventAdapter extends BaseAdapter {
ArrayList < String > listTitle;
ArrayList < String > listFullText;
Activity activity;
public MyEventAdapter(Activity activity, ArrayList < String > listTitle, ArrayList < String > listFullText) {
super();
this.listTitle = listTitle;
this.listFullText = listFullText;
this.activity = …Run Code Online (Sandbox Code Playgroud) 你能告诉我之间的差异ArrayAdapter,BaseAdapter以及ListAdapter.
在我的android项目中,我有ImageAdapter类,我在其中传递应用程序上下文以满足其他需求.
public class ImageAdapter extends BaseAdapter {
private Context c;
public ImageAdapter(Context c) {
this.c = c;
}
...
}
Run Code Online (Sandbox Code Playgroud)
问题是我想让ImageAdapter成为一个单例,以便从我的所有活动中轻松访问这个类的实例.但是我不知道如何将getApplicationContext()方法中的app context从我的一个活动传递给ImageAdapter.所以有没有"神奇"做到这一点如下?
public class ImageAdapter extends BaseAdapter {
private Context c;
private static class Holder {
public static final ImageAdapter IA = new ImageAdapter();
}
private ImageAdapter() {
this.c = /* some magic here */.getApplicationContext();
}
public static ImageAdapter getInstance() {
return Holder.IA;
}
...
}
Run Code Online (Sandbox Code Playgroud)
也许你有一些其他的想法,可以为我的任何活动分享ImageAdapter.我是android的新手,我对在活动中传递数据的方式有点困惑.
我将不胜感激任何帮助.
我创建了一个包含多个项目的列表视图.我上面还创建了一个搜索框.我想根据列表的特定字段实现搜索功能.我怎样才能做到这一点?任何帮助将不胜感激.
伙计们我需要一些帮助.我一直在尝试在我的项目中实现SearchView.但是我的项目包含一个列表视图,附带了一个自定义适配器.我搜索了很多站点,但都有使用arrayadapter实现的示例. .假设我有一个Employee类,它包含名称和年龄字段.如何使用他们的名称来过滤员工..
public class MainActivity extends Activity implements SearchView.OnQueryTextListener
{
SearchView mSearchView;
ListView mListView;
//String mStrings[]= {"abc","def","efg","ghi","ijk","apple","agxhsdgc","abbbcc"};
ArrayList<Employee> emp_list=null;
EmployeeAdapter emp_adapter=null;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSearchView=(SearchView) findViewById(R.id.searchView1);
mListView=(ListView) findViewById(R.id.listView1);
emp_list=new ArrayList<Employee>();
emp_list.add(new Employee("ABC", 24));
emp_list.add(new Employee("ACB", 24));
emp_list.add(new Employee("BVF", 28));
emp_list.add(new Employee("BRT", 28));
emp_list.add(new Employee("ANM", 23));
emp_adapter=new EmployeeAdapter(MainActivity.this, emp_list);
mListView.setAdapter(emp_adapter);
// mListView.setAdapter(new ArrayAdapter<String>(this,
// android.R.layout.simple_list_item_1,
// mStrings));
mListView.setTextFilterEnabled(true);
setupSearchView();
}
private void setupSearchView()
{
mSearchView.setIconifiedByDefault(false);
mSearchView.setOnQueryTextListener(this);
mSearchView.setSubmitButtonEnabled(true);
mSearchView.setQueryHint("Search Here");
}
@Override
public boolean onQueryTextChange(String newText)
{ …Run Code Online (Sandbox Code Playgroud) 我发现了一个可能是错误的神秘问题!我的片段中有一个列表.每行都有一个按钮.列表不应响应单击但是按钮是可单击的.
为了获得点击的按钮,我创建了一个监听器并在我的片段中实现它.这是我的适配器的代码.
public class AddFriendsAdapter extends BaseAdapter {
public interface OnAddFriendsListener {
public void OnAddUserClicked(MutualFriends user);
}
private final String TAG = "*** AddFriendsAdapter ***";
private Context context;
private OnAddFriendsListener listener;
private LayoutInflater myInflater;
private ImageDownloader imageDownloader;
private List<MutualFriends> userList;
public AddFriendsAdapter(Context context) {
this.context = context;
myInflater = LayoutInflater.from(context);
imageDownloader = ImageDownloader.getInstance(context);
}
public void setData(List<MutualFriends> userList) {
this.userList = userList;
Log.i(TAG, "List passed to the adapter.");
}
@Override
public int getCount() {
try {
return userList.size();
} catch …Run Code Online (Sandbox Code Playgroud) android ×10
baseadapter ×10
listview ×4
html-lists ×1
java ×1
listadapter ×1
performance ×1
search ×1
searchview ×1
singleton ×1