【发布时间】:2015-12-21 11:01:11
【问题描述】:
问题是,如果单击第一个按钮,那么第十二个按钮也仅在移动设备上运行此错误,如果在模拟器上运行,列表显示所有元素并完美运行。但在移动列表视图中显示 10 个项目,需要向下滚动才能查看更多`public class MyCustomAdapter 扩展 BaseAdapter 实现 ListAdapter { 私有 ArrayList 列表 = 新 ArrayList(); 私有上下文上下文;
public MyCustomAdapter(ArrayList<String> list, Context context) {
this.list = list;
this.context = context;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int pos) {
return list.get(pos);
}
@Override
public long getItemId(int pos) {
return 0; //list.get(pos).getId();
//just return 0 if your list items do not have an Id variable.
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
View view = convertView;
if (view == null) {
LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.list, null);
}
//Handle TextView and display string from your list
TextView listItemText = (TextView)view.findViewById(R.id.name);
listItemText.setText(list.get(position));
//Handle buttons and add onClickListeners
final Button deleteBtn = (Button)view.findViewById(R.id.present);
final Button addBtn = (Button)view.findViewById(R.id.absent);
deleteBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do something
// list.remove(position); //or some other task
Toast.makeText(context,"hello",Toast.LENGTH_SHORT).show();
deleteBtn.setBackgroundColor(Color.GREEN);
addBtn.setEnabled(false);
// notifyDataSetChanged();
}
});
addBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//do something
addBtn.setBackgroundColor(Color.GREEN);
deleteBtn.setEnabled(false);
// notifyDataSetChanged();
}
});
return view;
}
}`
这是添加列表项
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
str = sp1.getSelectedItem().toString();
//handle listview and assign adapter
if(str.equals("3rd year")) {
Toast.makeText(getApplicationContext(), str, Toast.LENGTH_SHORT).show();
for(int i=0;i<15;i++)
{
list3.add("Item"+i);
}
}
ListView lView = (ListView) findViewById(R.id.listView);
lView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
lView.setAdapter(adapter);
}
【问题讨论】:
-
你尝试了什么,你是如何发布代码的?
-
这是列表视图适配器中的问题,使用
boolean flag来识别您使用 id 或某些东西单击了哪个项目 -
代码没有错误,但在模拟器上运行良好...但是如果使用小尺寸手机则需要滚动列表以查看更多项目...然后问题发生了
-
问题可能是适配器的位置,发布你的代码
-
只有当列表项未显示完整项时才会出现问题
标签: android