标签: listview-adapter

如何将OnClickListener添加到ListView适配器内的按钮?

我有一个列表视图,其中包含我所有用户的列表.列表中的每个项目都是一个布局,其中包含一个按钮,用于显示AlertDialog以更改按钮标签的值.如何动态地将单击事件添加到listview适配器生成的按钮?

这是我的适配器:

public class PerfilAdapter extends BaseAdapter {
Context mContext;
LayoutInflater mLayoutInflater;
List<PerfilBean> listaPerfiles = new ArrayList<PerfilBean>();
public Settings01 set=new Settings01();
public PerfilAdapter(Context context,List<PerfilBean> lista) {
    mContext = context;
    mLayoutInflater = (LayoutInflater) mContext
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    listaPerfiles=lista;
}
@Override
public int getCount() {
    // TODO Auto-generated method stub
    return listaPerfiles.size();
}

@Override
public Object getItem(int position) {
    // TODO Auto-generated method stub
    return listaPerfiles.get(position);
}

@Override
public long getItemId(int position) {
    // TODO Auto-generated method stub
    return position;
}

@Override
public View …
Run Code Online (Sandbox Code Playgroud)

android listview listview-adapter

19
推荐指数
1
解决办法
4万
查看次数

错误的convertView类型ListView的BaseAdapter

我有一个列表视图适配器使用不同类型的视图行.

大多数时候它工作正常.但是当我从列表中删除一个元素时它会崩溃.它将不正确类型的convertView发送到getView

public View getView(int position, View convertView, ViewGroup patent) ...  
Run Code Online (Sandbox Code Playgroud)

但getItemViewType返回正确的类型.

public int getItemViewType(int position)
Run Code Online (Sandbox Code Playgroud)

所以我看到的东西看起来像这样

给我位置1的类型 - >返回正确的类型(比如1)

给我一个位置1的视图,其中包含错误类型的内容视图(比如类型2)

有任何想法吗?

android listview listview-adapter

9
推荐指数
2
解决办法
3000
查看次数

如何在由BaseAdapter获取视图方法扩展的类中显示Toast

当我单击列表视图中的按钮时,我有显示Toast消息的问题.问题是我通过BaseAdapter扩展的自定义类我有一个名为GetView的方法我想显示来自该特定消息的Toast消息

以下是我的Listview Row Xml

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/tools"
    android:id="@+id/scrollView1"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    app:context=".HomeActivity" >

    <TableLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent" >

        <TableRow
            android:id="@+id/tableRow_laugh"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >

            <RelativeLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                app:ignore="UselessParent" >

                <TableLayout
                    android:layout_width="match_parent"
                    android:layout_height="match_parent"
                    android:layout_alignParentLeft="true"
                    android:layout_alignParentTop="true" >

                    <TableRow
                        android:id="@+id/tableRow_Header_laugh"
                        android:layout_width="fill_parent"
                        android:layout_height="wrap_content"
                        android:background="#818085" >

                        <RelativeLayout
                            android:id="@+id/relative_header"
                            android:layout_width="wrap_content"
                            android:layout_height="fill_parent"
                            android:background="#818085" >

                            <ImageView
                                android:id="@+id/UserIconPic_laugh"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignParentLeft="true"
                                android:layout_alignParentTop="true"
                                android:layout_weight="0.4"
                                android:src="@drawable/ic_launcher"
                                app:ignore="ObsoleteLayoutParam,ContentDescription" />

                            <Button
                                android:id="@+id/btn_Vote_laugh"
                                android:layout_width="wrap_content"
                                android:layout_height="match_parent"
                                android:layout_alignParentRight="true"
                                android:layout_alignParentTop="true"
                                android:layout_weight=".4"
                                android:text="VOTE"
                                app:ignore="ObsoleteLayoutParam,HardcodedText" />

                            <TextView
                                android:id="@+id/txt_number_of_vote_laugh"
                                android:layout_width="wrap_content"
                                android:layout_height="wrap_content"
                                android:layout_alignBaseline="@+id/btn_Vote_laugh"
                                android:layout_alignBottom="@+id/btn_Vote_laugh"
                                android:layout_toRightOf="@+id/UserIconPic_laugh"
                                android:layout_weight=".4"
                                android:textAppearance="?android:attr/textAppearanceMedium"
                                app:ignore="ObsoleteLayoutParam,HardcodedText" />
                        </RelativeLayout>
                    </TableRow>

                    <TableRow
                        android:id="@+id/tableRow_MainText_laugh"
                        android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android listview android-layout baseadapter listview-adapter

9
推荐指数
1
解决办法
2万
查看次数

如何从listview适配器位置获取对象值

如何从适配器位置获取值,我的代码如下:

CategoriesXmlParser categoryXmlParser = new CategoriesXmlParser();
List<HashMap<String, Object>> categories = null;

try {
  categories = categoryXmlParser.parse(reader);
} catch (Exception e) {
  Log.d("Exception", e.toString());
}

String[] from = { "name", "image" };
int[] to = { R.id.nama_category, R.id.logo_category };

final SimpleAdapter adapter = new SimpleAdapter(getBaseContext(),
                    categories, R.layout.per_item_category, from, to);

mListView.setOnItemClickListener(new OnItemClickListener() {
  public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
    Object obj = mListView.getAdapter().getItem(position);
    String value = obj.toString();
    Log.d("MyLog", "Value is: "+value);
    String name = // how code …
Run Code Online (Sandbox Code Playgroud)

android listview listview-adapter

8
推荐指数
2
解决办法
6万
查看次数

ListView自定义过滤器在过滤时选择了错误的项目[Android]

我是Android编程新手,我有一个ListView,当过滤总是返回列表中的第一项,所以我该如何解决这个问题?

例如,我的列表包含AA,AB,AC,BC,BD当我想在列表中搜索以B开头的内容时,我将获得BC,BD但是当我点击BC时,它返回AA和BD,它返回给我AB

public class PatientList extends Activity{

PatientDB patientDB;
Context myContext;
ListView lv_patients;    
EditText et_patients;
ArrayAdapter<String> adapter;   
ArrayList<HashMap<String, String>> patientList;
static String value;
String[] patientarray = new String[]{"initials"};
ArrayList<String> patientArrayList = new ArrayList<String>();

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_patient_list);

    myContext = this;
    patientDB = new PatientDB(myContext);
    patientDB.open();

    Cursor patientCursor;

    patientCursor = patientDB.retrieveAllEntriesCursor();

    if(patientCursor!=null && patientCursor.getCount()>0)
    {
        String patientInitials;

        patientCursor.moveToFirst();
        do 
        {
            patientCursor.getString(patientDB.COLUMN_KEY_ID); // + " " + 
            patientInitials = patientCursor.getString(patientDB.COLUMN_INITIALS_ID);
            Log.i("FromCursor", patientInitials);
            patientArrayList.add(patientInitials); …
Run Code Online (Sandbox Code Playgroud)

android listview listview-adapter

7
推荐指数
1
解决办法
6755
查看次数

Android ListView选择动画

当用户在列表视图中选择元素时,如何设置动画?

我正在创建自己的listview适配器来设置具有粉红色背景的偶数行和具有紫色背景的奇数行.唯一的问题是我不确定如何为用户点击("触摸")元素设置动画.

我想到实现OnTouchListener并在选择时将背景更改为绿色但是由于OnTouchListener正在实现,我在行内部的按钮可能不再有效.这是真的?

码:

public class MyAdapter extends BaseAdapter {

    public View getView(int position, View convertView, ViewGroup parent) {
        // position is the element's id to use
        // convertView is either null -> create a new view for this element!
        //                or not null -> re-use this given view for element!
        // parent is the listview all the elements are in    

        if (convertView == null) {
            convertView = mInflater.inflate(R.layout.your_layout, null);

            // here you must do whatever is needed to populate …
Run Code Online (Sandbox Code Playgroud)

android android-animation android-listview listview-adapter

5
推荐指数
1
解决办法
4913
查看次数

Listview每6次复制一次项目

希望每个人都好;

我知道这个问题已经提前几次审查过,但经过长时间的搜索,我仍然没有找到解决方案.

我的自定义列表视图每6项重复一次项目.

已经检查并尝试过:

1- layout_width和layout_height不包含wrap_content

2- holder = new ListViewItem()在任何内容初始化之前

3-有一个"convertView!= null"

4- holder.linearLayout.getChild()不能在我的情况下使用,因为布局不是Linear

5-晴()

如果有人可以帮助我,这是我的代码

CustomListViewAdapter.java的getView()

public View getView(final int position, View convertView, ViewGroup parent) {  

    ListViewItem item = items.get(position);
    ListViewItem holder;


    View vi=convertView;

    inflater = (LayoutInflater)    getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);



    if(vi==null){

        vi = inflater.inflate(R.layout.item, null);
        holder = new ListViewItem();
        holder.cb = (CheckBox) vi.findViewById(R.id.Item1);
        holder.sp = (Spinner) vi.findViewById(R.id.Item2);
        holder.title = (TextView) vi.findViewById(R.id.Item3);
        holder.pricetitle= (TextView) vi.findViewById(R.id.item4);
        holder.Descriptiontitle= (TextView) vi.findViewById(R.id.Item5);
        vi.setTag(holder);

    }else{
        holder = (ListViewItem) vi.getTag();
    }



    holder.title.setText(item.ItemTitle);
    holder.pricetitle.setText(item.price+"");
    holder.Descriptiontitle.setText(item.Description);

    return …
Run Code Online (Sandbox Code Playgroud)

android listview duplicates android-listview listview-adapter

4
推荐指数
1
解决办法
4232
查看次数

如何将listviewadapter中的值传递给片段?

请帮我..

我想将listviewadapter项中的值传递给我的片段..

我有ListViewAdapterShipping.java

    package com.example.administrator.mosbeau;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.FragmentManager;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.inputmethod.EditorInfo;
import android.widget.BaseAdapter;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.ImageView;
import android.widget.RadioButton;
import android.widget.TextView;
import android.widget.Toast;

import com.bumptech.glide.Glide;
import com.bumptech.glide.load.engine.DiskCacheStrategy;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.params.BasicHttpParams;
import org.apache.http.params.HttpConnectionParams;
import org.apache.http.params.HttpParams;
import org.json.JSONArray;

import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader; …
Run Code Online (Sandbox Code Playgroud)

android listview android-listview android-fragments listview-adapter

4
推荐指数
1
解决办法
2820
查看次数

如何使用viewpager和fragmentStatePager Adapter创建轮播

我是android的新手,我正在尝试在android中创建一个旋转木马.我的班级结构如下

public class PageViewActivity extends FragmentActivity {

    ViewPager pager;
    ...

    public void onCreate(Bundle savedInstanceState) {
       final ViewPager pager = (ViewPager) findViewById(R.id.pager);
       MyPageAdapter pageAdapter = new MyPageAdapter(getSupportFragmentManager(),getBaseContext());
       pager.setAdapter(pageAdapter);
    }
Run Code Online (Sandbox Code Playgroud)

...

public class MyPageAdapter extends FragmentStatePagerAdapter {

    @Override
    public ImageFragment getItem(int position) {
       ...
       return fragment;
    }

    @Override
    public int getCount() {
       return 10;
    }
}
Run Code Online (Sandbox Code Playgroud)

现在我的程序工作正常,我可以通过向左或向右滑动来获取10个可以访问的片段.但我希望将这10个片段显示为轮播,以便用户更好地了解当前位置的左侧或右侧有更多碎片.

有人可以告诉我我该怎么做.

我确实使用PageContainer找到了这个url ViewPager轮播,而不是使用FragmentPagerAdapter,但对于像我这样的初学者来说,没有太多信息.

android carousel infinite-carousel listview-adapter fragmentstatepageradapter

2
推荐指数
1
解决办法
7646
查看次数

异步更新后更新Android Listview

我正在将我的HTTP调用转换为来自同步调用的异步调用.因为连接在后台运行,所以当我最初设置列表适配器时,数据不存在.如何在HTTP调用后让列表适配器更新?我尝试了一些事情,比如没有设置适配器,直到数据被发回并再次设置适配器,但没有任何工作.这是我目前的创建代码

protected void onCreate(Bundle savedInstanceState) {
    overridePendingTransition(R.layout.anim_out,R.layout.anim_in);
    setTheme(R.style.Theme_D_theme);
    setContentView(R.layout.news_fragment);
    super.onCreate(savedInstanceState);

    text = (TextView) this.findViewById(R.id.nomore);
    list = (ListView) this.findViewById(R.id.newslist);
    list.setDividerHeight(2);

    new MyAsyncTask().execute("THIS");  



        list.setOnItemClickListener(this);
        list.setCacheColorHint(Color.WHITE);
        adapter = new SimpleAdapter(this, x, R.layout.drill1_listview,
                new String[] {"title","content","distance", "image"},
                new int[] {R.id.title, R.id.content, R.id.distance, R.id.image} );

}
Run Code Online (Sandbox Code Playgroud)

而我的AsyncTast

private class MyAsyncTask extends AsyncTask<String, Integer, Double>{

    @Override
    protected Double doInBackground(String... params) {
        // TODO Auto-generated method stub
        postData(params[0]);
        return null;
    }

    protected void onPostExecute(Double result){
        //pb.setVisibility(View.GONE);
        Toast.makeText(getApplicationContext(), "command sent", Toast.LENGTH_LONG).show();
    }
    protected void onProgressUpdate(Integer... progress){
        //pb.setProgress(progress[0]);
    } …
Run Code Online (Sandbox Code Playgroud)

android android-listview listview-adapter

2
推荐指数
1
解决办法
3066
查看次数