标签: android-arrayadapter

Android - 使用ArrayAdapter一次向ListView添加和显示项目

我正在使用ArrayAdapter将项目添加到自定义ListView并在我的Android应用程序中显示结果.我遇到的问题是ArrayAdapter在显示视图之前似乎要等到所有项目都在其中.也就是说,当我将项添加到ArrayAdapter并调用notifyDataSetChanged时,它不会更新ListView以显示添加的项.它等待直到添加所有项目并在显示项目之前调用GetView.

我希望它能够在将项目添加到ListView后立即显示该项目.这可能吗?

我相信相关的代码如下:

r_adapter = new ReminderAdapater(Activity_ContentSearch.this, R.layout.search_listitem, myList);
listView.setAdapter(r_adapter);
...
r_adapter.notifyDataSetChanged();
r_adapter.clear();
for(int i = 0; i < myList.size(); i++)
{
    r_adapter.add(myList.get(i));
    r_adapter.notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)

如您所见,即使我在add方法之后调用notifyDataSetChanged,它实际上也不会更新视图.在完成上面的循环之后,视图最终被更新(基于我所知道的,这是因为在完成代码的这一部分之后才调用GetView).

我试图覆盖我的自定义ArrayAdapter的add方法,没有运气,因为我无法访问该方法中的视图.

欢迎任何帮助:)

巴拉

android listview android-arrayadapter android-listview android-asynctask

11
推荐指数
1
解决办法
3万
查看次数

notifyDataSetChanged用于多个复选框

multiple_checkboxes

在附加图像中,SelectAll checkbox存在于活动中,并且都checkboxes在适配器内.如果我checked SelectAll然后在适配器中检查所有复选框,如果我取消选中,则取消选中所有复选框.它发生得很好.

但我想,如果我checked SelectAll和之后,如果我uncheked在适配器中的一个或多个复选框然后SelectAll checkbox should unchecked.如果没有检查SelectAll如果我手动检查适配器中的所有复选框然后SelectAll checkbox should checked自动.

我怎样才能做到这一点.

吼叫是我的代码., http://pastebin.com/5pUJJC42

checkbox android android-arrayadapter

11
推荐指数
1
解决办法
3745
查看次数

自定义微调器视图

我创建了自己的自定义微调器,我可以在它实现的"自定义和库视图"中访问它View.但是,问题是当从我的调色板中拖动我的自定义微调器以在我的中使用它时main.xml,它会抛出"未处理的事件循环异常".我不知道我的错误在哪里.

main.xml中

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:pref="http://schemas.android.com/apk/res/com.myspinner"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

<com.myspinner.Myspinner
android:id="@+id/myspinner1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
pref:MyEntries="@array/testarray" />
Run Code Online (Sandbox Code Playgroud)

MySpinnerattributes.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="MySpinner">
        <attr name="MyEntries" format="reference"/>
    </declare-styleable>
</resources>
Run Code Online (Sandbox Code Playgroud)

spinnerlayout.xml

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/textView1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center"
    android:text="@string/large_text" android:gravity="center"/>
Run Code Online (Sandbox Code Playgroud)

Myspinner.java

    public class Myspinner extends Spinner{


    LayoutInflater inflater;
    CharSequence cs[]={"MySpinner"};
    String s[]={"MySpinner"};
    View row;
    TextView txt;


public Myspinner(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    setAttributes(attrs);    
    this.setAdapter(new MyAdapter(this.getContext(), R.layout.spinnerlayout,s));
    }



public Myspinner(Context …
Run Code Online (Sandbox Code Playgroud)

android custom-attributes custom-component android-arrayadapter android-spinner

11
推荐指数
0
解决办法
999
查看次数

更改了arraylist时,ArrayList和ListView的Android数组适配器不会更新

我有一个Android应用程序,其屏幕包含一个ListView,我用它来显示设备列表.这些设备保存在一个阵列中.

我正在尝试使用ArrayAdapter在列表中的屏幕上显示数组中的内容.

它在我第一次加载SetupActivity类时有效,但是,可以在addDevice()方法中添加新设备,这意味着更新了保存设备的阵列.

我正在使用notifyDataSetChanged(),它应该更新列表,但它似乎不起作用.

public class SetupActivity extends Activity
{   
    private ArrayList<Device> deviceList;

    private ArrayAdapter<Device> arrayAdapter;

    private ListView listView;

    private DevicesAdapter devicesAdapter;

    private Context context;

    public void onCreate(Bundle savedInstanceState)  //Method run when the activity is created
    {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.setup);  //Set the layout

        context = getApplicationContext();  //Get the screen

        listView = (ListView)findViewById(R.id.listView);

        deviceList = new ArrayList<Device>();

        deviceList = populateDeviceList();  //Get all the devices into the list

        arrayAdapter = new ArrayAdapter<Device>(this, android.R.layout.simple_list_item_1, deviceList);

        listView.setAdapter(arrayAdapter);  
    }

    protected …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter android-listview android-activity

11
推荐指数
2
解决办法
5万
查看次数

android - 长按一下从ListView中删除项目

我在尝试从长按一下从列表视图中删除项目时遇到了一些麻烦.以下是代码:

public class MListViewActivity extends ListActivity {

private ListView lv;
private String[] some_data = null;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    some_data = getResources().getStringArray(R.array.mdata);

    // Bind resources Array to ListAdapter
    ArrayAdapter<String> myAdapter = new ArrayAdapter<String>(this,
            R.layout.list_item, R.id.label, some_data);
    this.setListAdapter(myAdapter);

    lv = getListView();
    lv.setDividerHeight(3);

    lv.setOnItemLongClickListener(new OnItemLongClickListener() {

        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view,
                int arg2, long arg3) {

            // Can't manage to remove an item here

            return false;
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏

android android-arrayadapter android-listview

11
推荐指数
2
解决办法
3万
查看次数

如何从自定义ArrayAdapter调用main活动的功能?

我看了很多类似的问题,似乎无法发挥作用.我有一个带有这样功能的主类,编辑显示一个对话框,然后在按下按钮时编辑一个List.

public class EditPlayers extends SherlockFragmentActivity {

    listPlayerNames.setAdapter(new EditPlayerAdapter(ctx,
                R.layout.score_row_edit_player, listScoreEdit));

public void deletePlayer(final int position) {
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(
            EditPlayers.this);

    // Setting Dialog Title
    alertDialog.setTitle("Delete Player");

    // Setting Dialog Message
    alertDialog.setMessage("Are you sure?");

    // Setting Delete Button
    alertDialog.setPositiveButton("Delete",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    listScoreEdit.remove(position);
                    updateListView();
                }
            });

    // Setting Cancel Button
    alertDialog.setNeutralButton("Cancel",
            new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog, int which) {
                    dialog.cancel();
                }
            });

    // Showing Alert Message
    alertDialog.show();
}

} …
Run Code Online (Sandbox Code Playgroud)

java android android-arrayadapter

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

如何将嵌套的ArrayList分割为TabLayout的每个布局

我正在使用嵌套的ArrayList for Tablayout.ArrayList的每个元素都会填充每个Tab.标签计数根据父级arraylist的大小而变化.例如,当父ArrayList的大小为2时,选项卡数为2; 当大小3标签计数3..etc..为了解释这种情况很困难,我准备了expalantion图像..

图片1

此图像代表一般外观.我想用ArrayLists为每个元素填充这个TextViews

图2

此图像代表我的数据类型; 键和值ArrayList是嵌套的arraylist,它们在每个索引中包含arraylist.

图3 - 图像4 - 图像5

这个图像代表了tabLayouts过去的样子.我希望我的数据看起来像这个图像.

所以问题是PopUpDetailsAdapterPlanT Class;

当我使用下面的代码时,每行填充相同的项目.对于此示例,每行写入ArrayList的最后一个元素(位置 - 明尼苏达州)如何处理此问题.谢谢你的帮助

public class PopUpDetailsAdapterPlanT extends ArrayAdapter {
Context context;
private ArrayList<ArrayList<Object>> keys;
private ArrayList<ArrayList<String>> values;

    public PopUpDetailsAdapterPlanT(Context context, ArrayList<ArrayList<Object>> keys, ArrayList<ArrayList<String>> values) {
        super(context,R.layout.popupdetails_listview_simpleitem);
        this.keys = keys;
        this.values = values;
        this.context = context;
    }

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

        View v = convertView;

        if (v == null) {
            LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            v = …
Run Code Online (Sandbox Code Playgroud)

android arraylist android-arrayadapter android-tablayout

11
推荐指数
1
解决办法
562
查看次数

从应用程序屏幕打开应用程序与最近使用的应用程序列表之间的区别是什么?(机器人

任何人都可以告诉我,从应用程序屏幕打开应用程序和从长按主页按钮时弹出的最近使用的应用程序列表中打开它有什么区别?

我甚至不知道最近使用的列表存在,直到一位朋友设法通过从那里启动它来破坏我的应用程序.他尝试了两次并获得相同的力量退出,但当他从应用程序屏幕启动它时它打开很好.

错误日志告诉我在我的ArrayView的ArrayAdaptor上的getCount方法中发生了nullPointerException.

无论如何,我只是想知道我是否需要了解并调整我的代码来处理?

android nullpointerexception android-arrayadapter

10
推荐指数
1
解决办法
534
查看次数

Android限制微调器下拉列表中显示的项目数

我有一个spinner项绑定到一个数组适配器,任何时候可能有0或更多项.我希望微调器下拉列表一次只显示三个项目,其余项目可滚动.我已经尝试在具有固定宽度的布局中包装微调器但是微调器下拉列表仍然占据整个屏幕(如果阵列适配器中有很多项)以显示列表.

android android-arrayadapter android-spinner

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

如何为AutoCompleteTextView创建自定义BaseAdapter

我一直在为AutoCompleteTextView创建自定义ArrayAdapter时遇到困难,尽管在互联网上找到以下代码,但仍会出现这样的错误:

  • 下拉列表不会出现.
  • 自定义对象及其详细信息不会出现.

因此,对于那些遇到或遇到与我相同问题的人,我建议使用BaseAdapter代替AutoCompleteTextView.

android autocompletetextview android-arrayadapter baseadapter

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