Android Studio中的ListView中的适配器

路易斯·亨里克·乌利亚诺

我想补充的是,通过三类控制一个自定义的ListView代码:AdapterListViewItemListViewMainActivity

到目前为止,代码仅通过设法输入数据和图像(由代码插入)AdapterListView在该类中,想知道如何使用其他功能,例如由应用程序添加或删除项目。

在三个项目类下面:

AdapterListView

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import java.util.ArrayList;

/**
* Created by LuizHMU on 2/7/15.
*/
public class AdapterListView extends BaseAdapter {

private LayoutInflater mInflater;
private ArrayList<ItemListView> itens;

public AdapterListView(Context context, ArrayList<ItemListView> itens) {
    //Itens que preencheram o listview
    this.itens = itens;
    //responsavel por pegar o Layout do item.
    mInflater = LayoutInflater.from(context);
}

/**
 * Retorna a quantidade de itens
 *
 * @return
 */
public int getCount() {
    return itens.size();
}

/**
 * Retorna o item de acordo com a posicao dele na tela.
 *
 * @param position
 * @return
 */
public ItemListView getItem(int position) {
    return itens.get(position);
}

/**
 * Sem implementação
 *
 * @param position
 * @return
 */
public long getItemId(int position) {
    return position;
}

public View getView(int position, View view, ViewGroup parent) {
    //Pega o item de acordo com a posção.
    ItemListView item = itens.get(position);
    //infla o layout para podermos preencher os dados
    view = mInflater.inflate(R.layout.item_list, null);

    //atravez do layout pego pelo LayoutInflater, pegamos cada id relacionado
    //ao item e definimos as informações.
    ((TextView) view.findViewById(R.id.text)).setText(item.getTexto());
    ((ImageView) view.findViewById(R.id.imagemview)).setImageResource(item.getIconeRid());

    return view;
}
}

ItemListView

/**
* Created by LuizHMU on 2/7/15.
*/
public class ItemListView {

private String texto;
private int iconeRid;

public ItemListView() {
}

public ItemListView(String texto, int iconeRid) {
    this.texto = texto;
    this.iconeRid = iconeRid;
}

public int getIconeRid() {
    return iconeRid;
}

public void setIconeRid(int iconeRid) {
    this.iconeRid = iconeRid;
}

public String getTexto() {
    return texto;
}

public void setTexto(String texto) {
    this.texto = texto;
}
}

主要活动

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends Activity implements OnItemClickListener {

private ListView listView;
private AdapterListView adapterListView;
private ArrayList<ItemListView> itens;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //carrega o layout onde contem o ListView
    setContentView(R.layout.activity_main);

    //Pega a referencia do ListView
    listView = (ListView) findViewById(R.id.list);
    //Define o Listener quando alguem clicar no item.
    listView.setOnItemClickListener(this);

    createListView();
}

private void createListView() {
    //Criamos nossa lista que preenchera o ListView
    itens = new ArrayList<ItemListView>();
    ItemListView item1 = new ItemListView("Felpudo", R.drawable.felpudo);
    ItemListView item2 = new ItemListView("Felpudão", R.drawable.felpudo1);
    ItemListView item3 = new ItemListView("Felpudinho", R.drawable.felpudo2);

    itens.add(item1);
    itens.add(item2);
    itens.add(item3);

    //Cria o adapter
    adapterListView = new AdapterListView(this, itens);

    //Define o Adapter
    listView.setAdapter(adapterListView);
    //Cor quando a lista é selecionada para ralagem.
    listView.setCacheColorHint(Color.TRANSPARENT);
}

public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    //Pega o item que foi selecionado.
    ItemListView item = adapterListView.getItem(arg2);
    //Demostração
    Toast.makeText(this, "Você Clicou em: " + item.getTexto(), Toast.LENGTH_LONG).show();
}
}
用户名

将此添加到您的适配器:

public void addItem(ItemListView item){
 items.add(item);
 notifyDatasetChanged();
}

public void removeItem(int positionToRemove){
 items.remove(positionToRemove);
 notifyDatasetChanged();
}

为了进一步说明发生了什么,适配器是控制器,是信息和在视图(ListView)中显示信息的方式之间的中间步骤。在这种情况下,信息是通过项目列表提供给适配器的,因此基本上操作该列表并调用notifyDataSetChanged()将更改显示给用户的视图。

希望我能帮上忙。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android中的ListView和适配器,是否属于适配器设计模式?

来自分类Dev

Android Studio中带有自定义适配器的自定义ListView

来自分类Dev

在用于ListView的自定义适配器中从URL加载图像(Android Studio)

来自分类Dev

Android Studio ListView将不会显示适配器中的项目

来自分类Dev

Android中的ListView计数与适配器计数

来自分类Dev

Android ListView更改项在适配器中的选定状态

来自分类Dev

带有arraylist的listview,android中的简单适配器

来自分类Dev

如何从Android的Listview中删除适配器

来自分类Dev

我的Android Listview适配器中的IndexOutOfBoundsException

来自分类Dev

如何在其适配器中刷新android listview

来自分类Dev

Android ListView中适配器和模板视图的组合

来自分类Dev

AlertDialog中的Android ListView-设置适配器

来自分类Dev

从Android中的ListView适配器获取TextView

来自分类Dev

Android:ListView适配器中的业务逻辑?

来自分类Dev

Android:从viewPager中的Fragment调用ListView的适配器的getview()

来自分类Dev

Android-在Listview中显示来自适配器的数据

来自分类Dev

Android,适配器的getView中的NullPointerException

来自分类Dev

用于循环适配器更新的 Android Studio Listview

来自分类Dev

无法将JSON中的新数据添加到Android中的Listview适配器

来自分类Dev

在回调方法中设置适配器时,Xamerin Android ListView未填充

来自分类Dev

具有自定义适配器的listview中的android更改列表项

来自分类Dev

从Android中的ListView适配器启动自定义警报对话框

来自分类Dev

尝试在Android中制作自定义ListView适配器

来自分类Dev

使用自定义适配器时如何从Android中的ListView获取数据

来自分类Dev

从Android中的ListView适配器启动自定义警报对话框

来自分类Dev

Android ListView适配器,其中包含getView中的按钮,这些按钮可更改布局

来自分类Dev

Android:ListView适配器中的OnClickListener有时无法正常工作

来自分类Dev

Android:适配器中还是适配器之外的OnClick Listener?

来自分类Dev

Android:适配器中还是适配器之外的OnClick Listener?

Related 相关文章

  1. 1

    Android中的ListView和适配器,是否属于适配器设计模式?

  2. 2

    Android Studio中带有自定义适配器的自定义ListView

  3. 3

    在用于ListView的自定义适配器中从URL加载图像(Android Studio)

  4. 4

    Android Studio ListView将不会显示适配器中的项目

  5. 5

    Android中的ListView计数与适配器计数

  6. 6

    Android ListView更改项在适配器中的选定状态

  7. 7

    带有arraylist的listview,android中的简单适配器

  8. 8

    如何从Android的Listview中删除适配器

  9. 9

    我的Android Listview适配器中的IndexOutOfBoundsException

  10. 10

    如何在其适配器中刷新android listview

  11. 11

    Android ListView中适配器和模板视图的组合

  12. 12

    AlertDialog中的Android ListView-设置适配器

  13. 13

    从Android中的ListView适配器获取TextView

  14. 14

    Android:ListView适配器中的业务逻辑?

  15. 15

    Android:从viewPager中的Fragment调用ListView的适配器的getview()

  16. 16

    Android-在Listview中显示来自适配器的数据

  17. 17

    Android,适配器的getView中的NullPointerException

  18. 18

    用于循环适配器更新的 Android Studio Listview

  19. 19

    无法将JSON中的新数据添加到Android中的Listview适配器

  20. 20

    在回调方法中设置适配器时,Xamerin Android ListView未填充

  21. 21

    具有自定义适配器的listview中的android更改列表项

  22. 22

    从Android中的ListView适配器启动自定义警报对话框

  23. 23

    尝试在Android中制作自定义ListView适配器

  24. 24

    使用自定义适配器时如何从Android中的ListView获取数据

  25. 25

    从Android中的ListView适配器启动自定义警报对话框

  26. 26

    Android ListView适配器,其中包含getView中的按钮,这些按钮可更改布局

  27. 27

    Android:ListView适配器中的OnClickListener有时无法正常工作

  28. 28

    Android:适配器中还是适配器之外的OnClick Listener?

  29. 29

    Android:适配器中还是适配器之外的OnClick Listener?

热门标签

归档