Articles of android arrayadapter

在Android中,ArrayAdapter线程安全吗? 如果没有,我该怎么做才能使其安全?

让我说我扩展ArrayAdapter并在我覆盖getView(int i, View v, ViewGroup g) ,我使用getItem(i)检索当前项。 即使其他线程操纵相同的ArrayAdapter ,我可以确定getItem(i)将返回一个项吗? 我不确定,但我认为答案是肯定的。 如果是的话,你建议我做些什么来使它具有线程安全性?

在arrayadapter中交换数据时,从绑定器存根实现中捕获了RuntimeException

public class MainActivity extends AppCompatActivity { ArrayList list = new ArrayList(); ArrayAdapter adapter; ArrayList data1 = new ArrayList(); ArrayList data2 = new ArrayList(); @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); for (int i = 0 ; i< 10 ;i++){ data1.add(String.valueOf(i)); } for (int i = 20; i < 30; i++){ data2.add(String.valueOf(i)); } Spinner spinner […]

将ArrayAdapter与AlertDialog和.setAdapter一起使用

我的代码进入OnOptionsItemSelected方法。 我试过显示一个简单的吐司,它工作正常,所以至少我知道我“到了那里”。 ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.select_dialog_multichoice); adapter.add(“whatever data1”); adapter.add(“whatever data2”); adapter.add(“whatever data3”); AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(“whatever title”); builder.setAdapter(adapter, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { } }); 问题是没有警报对话框。 我尝试用简单的数组构建一个警告对话框,它可以工作。

Spinner无法加载整数数组?

我有一个应用程序,它有一个Spinner,我想要填充一些数字(4,8,12,16)。 我在strings.xml中使用上面提到的项创建了一个整数数组对象,将Spinner的条目设置为整数数组,当我运行应用程序时,我得到: 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): java.lang.NullPointerException 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:355) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.widget.ArrayAdapter.getView(ArrayAdapter.java:323) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.widget.AbsSpinner.onMeasure(AbsSpinner.java:198) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.view.View.measure(View.java:7965) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:2989) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:888) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.widget.LinearLayout.measureVertical(LinearLayout.java:350) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.widget.LinearLayout.onMeasure(LinearLayout.java:278) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at android.view.View.measure(View.java:7965) 04-19 23:38:48.016: ERROR/AndroidRuntime(10193): at […]

使用数组列表的Android Spinner数据绑定

我有一个像这样的数组列表: private ArrayList Artist_Result = new ArrayList(); 此Location类有两个属性: id和location 。 我需要将我的ArrayList绑定到微调器。 我这样试过: Spinner s = (Spinner) findViewById(R.id.SpinnerSpcial); ArrayAdapter adapter = new ArrayAdapter(this,android.R.layout.simple_spinner_item, Artist_Result); s.setAdapter(adapter); 但是,它显示了对象的hex值。 所以我想我必须设置显示该微调控制器的文本和值。

Android ListView Adapter如何检测空列表?

我的Activity中有一个ListView,它从SimpleAdapter的扩展类中获取值。 当我在其中添加或删除一些数据时,这个正常工作。 但我的问题是,当我的项目列表为空时,我想用“No item inhere”之类的消息替换listView或类似的东西。 我尝试这样做,这样: class FavAdapter extends SimpleAdapter{ Activity context; ArrayList<HashMap> data; String[] items; int[] champs; int layout; FavAdapter(Activity _context, ArrayList<HashMap> _data, int _layout, String[] _items, int[] _champs){ super(_context, _data, _layout, _items, _champs ); this.data = _data; this.context = _context; this.items = _items; this.layout = _layout; this.champs = _champs; } public View getView(int […]

Android:从自定义列表视图中单击的按钮获取列表视图项

我有一个带有两个按钮的自定义ListView,当我单击任何行上的任一行时,我想在Listview上获取文本标签,现在只需popup一个Toast。 到目前为止没有任何工作我继续得到我的数组中的最后一项。 这是一个屏幕截图,让您更好地了解我的意思 这是我的自定义ListView的Adapter子类 static final String[] Names = new String[] { “John”, “Mike”, “Maria”, “Miguel”}; class MyArrayAdapter extends ArrayAdapter { private final Context context; int which; public MyArrayAdapter(Context context, String[] pValues) { super(context, R.layout.main, pValues); this.context = context; values = pValues; } @Override public View getView(int position, View convertView, ViewGroup parent) { LayoutInflater inflater […]

R.layout和android.R.layout之间的区别

有什么区别 setContentView(R.layout.main); 和 ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_spinner_dropdown_item, sarray); R.layout和android.R.layout什么区别?

如何使用ArrayAdapter为ListView编写自定义filter

我有一个ListView连接到ArrayAdapter,其中Artist是我的一个简单类,它只有一个id和一个名字。 现在我想过滤ListView,所以我调用: artistAdapter.getFilter().filter(“bla”, new Filter.FilterListener() { public void onFilterComplete(int count) { Log.d(Config.LOG_TAG, “filter complete! count: ” + count); // returns 8 Log.d(Config.LOG_TAG, “adapter count: ” + artistAdapter.getCount()); // return 1150 } }); 第一个调试语句打印一个8的计数。这是以​​“bla”开头但是适配器没有得到它的listitems的正确计数。 第二个调试语句打印一个计数1150项。 这是列表中的完整项目数。 因此,filter不会告诉适配器它已经过滤了底层数据。 我现在想知道:我的适配器中是否有代码,以便从filter获取更新? 我是否必须编写自定义filter? 我需要做什么?

android小部件ArrayAdapter createViewFromResource的NullPointerException

我是android ArrayAdapters的新手,我在填充ListView时面临一个空指针exception。 我用来填充listview的数据不是null,我已经检查过了。 整个事情在第一次加载时工作正常,但是一旦我向下滚动到列表的末尾,应用程序崩溃了。 这是我的堆栈跟踪: E/AndroidRuntime﹕ FATAL EXCEPTION: main java.lang.NullPointerException at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394) at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362) at android.widget.AbsListView.obtainView(AbsListView.java:2386) at android.widget.ListView.makeAndAddView(ListView.java:1769) at android.widget.ListView.fillDown(ListView.java:672) at android.widget.ListView.fillGap(ListView.java:636) at android.widget.AbsListView.trackMotionScroll(AbsListView.java:5201) at android.widget.AbsListView$FlingRunnable.run(AbsListView.java:4358) at android.view.Choreographer$CallbackRecord.run(Choreographer.java:725) at android.view.Choreographer.doCallbacks(Choreographer.java:555) at android.view.Choreographer.doFrame(Choreographer.java:524) at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:711) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:5059) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:792) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:555) at dalvik.system.NativeStart.main(Native Method) 这是我的活动代码:“我已经标记了我填充listView的行” […]