Articles of android arrayadapter

ListView – getView被调用的次数太多

我知道关于“getView被调用几次”这个问题有几个问题,但是我的问题没有什么不同。 我有自定义行自定义listView(使用row_layout.xml)。 它一般运作良好。 在开始时,我有一个问题与多个调用getView,它是通过使用我在这里看到的在stackoverflow中的方法之一修复。 (使用“usedPositions”数组)。 现在,我在日志中看到这种情况:getView pos 0,getView pos 1,getView pos 0,getView pos 1.这使我的行倍增。 只有当我调用覆盖当前活动的新活动,然后closures该活动时才会发生。 (例如,打开相机活动,然后closures它)。 我将显示我的代码: public View getView(int position, View convertView, ViewGroup parent) { // TODO Auto-generated method stub View row = convertView; Toast toast = Toast.makeText(this.context, "getView " + position, 1000); toast.show(); String pos = Integer.toString(position); if (!usedPositions.contains(pos)) { CardHolder holder = […]

自定义视图缺less工具用于适配器的构造函数

我得到以下警告: 自定义视图com / example / view / adapter / SomeAdapter缺less工具所使用的构造函数:(Context)或(Context,AttributeSet)或(Context,AttributeSet,int) 在我的类SomeAdapter中扩展了一些扩展了ArrayAdapter的BaseAdapter public class SomeAdapter extends BaseAdapter{} public abstract class BaseAdapter extends ArrayAdapter<SomeModel>{} 该警告存在于具体适配器中,但不在抽象BaseAdapter中。 有没有人听说过这方面的警告? AFAIK Android通过ViewConstructorDetector检查超类的名称来检查类是否扩展视图: private static boolean isViewClass(ClassContext context, ClassNode node) { String superName = node.superName; while (superName != null) { if (superName.equals("android/view/View") //$NON-NLS-1$ || superName.equals("android/view/ViewGroup") //$NON-NLS-1$ || superName.startsWith("android/widget/") //$NON-NLS-1$ && !((superName.endsWith("Adapter") //$NON-NLS-1$ […]

无法从arrays适配器设置SwipeFlingAdapterView

我使用https://github.com/Diolor/Swipecards ,它工作完美,如果数据是静态的,但它不与AsyncTask 现在我想用JSON数据绑定适配器。 但它没有工作。 public class HomeFragment extends Fragment { private Context context; private ArrayList<Productp> al; private ArrayAdapter<Productp> arrayAdapter; SwipeFlingAdapterView flingContainer; ImageView img_product; private ProgressDialog pDialog; JSONParser jParser = new JSONParser(); private static String url_all_products = "http://www.example.com/prod.php"; // JSON Node names private static final String TAG_SUCCESS = "success"; private static final String TAG_PRODUCTS = "products"; […]

ArrayAdapter in Fragment – Android

我得到一些错误,我不知道为什么。 我使用数组适配器从片段中的string填充ListView。 我正在使用这个片段作为主要活动中显示的主屏幕这是我的代码 public class HomePage extends Fragment { private ListView lvHomePage; private String[] items; @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_home_page, container, false); items = getActivity().getResources().getStringArray(R.array.test); lvHomePage = (ListView) getActivity().findViewById(R.id.lvHomePage); lvHomePage.setAdapter(new ArrayAdapter<String>(getActivity().getApplicationContext(), android.R.layout.simple_list_item_1 , items)); return view; } } 我得到这个输出错误: 09-18 21:07:27.315: E/AndroidRuntime(3839): FATAL EXCEPTION: main 09-18 […]

AutoCompleteTextView – 禁用过滤

我从webservice检索string列表,我想列出他们在AutoCompleteTextField无论内置的AutoCompleteTextFieldfilter。 我怎么做? 有没有一种方法来禁用它的内部过滤很容易(最好没有子类化)我已经加载了所有的结果到一个ArrayAdapter ,问题是,其中一些不显示,因为过滤。 如果我走错了方向,请指向正确的方向。

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, […]

如何在自定义对象的android中使用ArrayAdapter

我如何在ListView中使用自定义对象的属性。 如果我用一个string列表实现一个ArrayAdapter,它在ListView中显示正常,但是当我使用自定义对象列表时,它只输出内存地址。 我到目前为止的代码是: ArrayList<CustomObject> allObjects = new ArrayList<>(); allObjects.add("title", "http://url.com")); ArrayAdapter<NewsObject> adapter = new ArrayAdapter<NewsObject>(this, android.R.layout.simple_list_item_1, android.R.id.text1, allNews); // Assign adapter to ListView listView.setAdapter(adapter); listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Uri uri = Uri.parse( "http://www.google.com" ); startActivity(new Intent(Intent.ACTION_VIEW, uri)); } }); 这里有一个类似的问题,但这不是我所需要的,因为我只需要在列表视图中显示标题,并在他们单击提取url时。

如何从string数组中填充微调器

我怎么能从String array填充微调,我知道我可以做到这一点从array.xml像这样的code : ArrayAdapter<CharSequence> gameKindArray = ArrayAdapter.createFromResource(view.getContext(),R.array.game_kind, android.R.layout.simple_spinner_item); gameKindArray.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); gameKind.setAdapter(gameKindArray); 但是当我有 String[] test=new String[]{"test1","test2"}; 我怎么能改变String[] ArrayAdapter

什么是android.R.layout.simple_list_item_1?

在我看到的所有例子中,创buildArrayAdapter时只使用“android.R.layout.simple_list_item_1”。 什么是android.R.layout.simple_list_item_1,它只是名为simple_list_item_1.xml的布局文件的名称,还是数组适配器所需的TextView的ID? 我如何看到文件的内容或从我的res文件夹使用我自己的文件? public class MyClass extends ListActivity { private String[] titles = {"Test"}; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.mylayout); setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, titles)); updateList(); } }

Android微调器显示对象引用而不是string

好的,所以我有一个与我的微调问题。 它正在填充从Web服务拉的数据。 我的问题是,当不单击微调框而不是显示微调框中的第一个项目的string,而是显示它的对象引用。 我已经看过相关的问题,但仍然看不到什么即时通讯丢失,是否就像丢失一个toString引用一样简单? 这是填充微调框的代码 private void buildDrinkDropDown() { List<NameValuePair> apiParams = new ArrayList<NameValuePair>(1); apiParams.add(new BasicNameValuePair("call", "drinkList")); bgt = new BackGroundTask(MAP_API_URL, "GET", apiParams); try { JSONArray drinks = bgt.execute().get(); for (int i = 0; i < drinks.length(); i++) { JSONObject d = drinks.getJSONObject(i); String id = d.getString(TAG_ID_DRINK); String createdAt = d.getString(TAG_CREATED_AT); String updatedAt = d.getString(TAG_UPDATED_AT); […]