我正在使用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

在附加图像中,SelectAll checkbox存在于活动中,并且都checkboxes在适配器内.如果我checked SelectAll然后在适配器中检查所有复选框,如果我取消选中,则取消选中所有复选框.它发生得很好.
但我想,如果我checked SelectAll和之后,如果我uncheked在适配器中的一个或多个复选框然后SelectAll checkbox should unchecked.如果没有检查SelectAll如果我手动检查适配器中的所有复选框然后SelectAll checkbox should checked自动.
我怎样才能做到这一点.
吼叫是我的代码., http://pastebin.com/5pUJJC42
我创建了自己的自定义微调器,我可以在它实现的"自定义和库视图"中访问它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
我有一个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
我在尝试从长按一下从列表视图中删除项目时遇到了一些麻烦.以下是代码:
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)
任何帮助表示赞赏
我看了很多类似的问题,似乎无法发挥作用.我有一个带有这样功能的主类,编辑显示一个对话框,然后在按下按钮时编辑一个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) 我正在使用嵌套的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) 任何人都可以告诉我,从应用程序屏幕打开应用程序和从长按主页按钮时弹出的最近使用的应用程序列表中打开它有什么区别?
我甚至不知道最近使用的列表存在,直到一位朋友设法通过从那里启动它来破坏我的应用程序.他尝试了两次并获得相同的力量退出,但当他从应用程序屏幕启动它时它打开很好.
错误日志告诉我在我的ArrayView的ArrayAdaptor上的getCount方法中发生了nullPointerException.
无论如何,我只是想知道我是否需要了解并调整我的代码来处理?
我有一个spinner项绑定到一个数组适配器,任何时候可能有0或更多项.我希望微调器下拉列表一次只显示三个项目,其余项目可滚动.我已经尝试在具有固定宽度的布局中包装微调器但是微调器下拉列表仍然占据整个屏幕(如果阵列适配器中有很多项)以显示列表.
我一直在为AutoCompleteTextView创建自定义ArrayAdapter时遇到困难,尽管在互联网上找到以下代码,但仍会出现这样的错误:
因此,对于那些遇到或遇到与我相同问题的人,我建议使用BaseAdapter代替AutoCompleteTextView.
android autocompletetextview android-arrayadapter baseadapter