[英]Dynamic ListView in Android Studio: Selecting random element and update list view
[英]Android Listview - get and update element of element
我需要有关Android ListView的帮助。 我有一个简单的清单,像这样:
ArrayList<HashMap<String, String>> tracksList = controller.getAllTracksInfo();
//
if(tracksList.size()!=0){
//Set the User Array list in ListView
ListAdapter adapter = new SimpleAdapter( checkDB.this,tracksList, R.layout.simplerow, new String[] { "Title","Synchronized"}, new int[] {R.id.track_title, R.id.is_synchronized});
myList=(ListView)findViewById(R.id.tracksinfo_list);
myList.setAdapter(adapter);
但是在元素“ R.id.is_synchronized”中,我想做类似的事情:
if (R.id.is_synchronized.getText().equals(0)) {
R.id.is_synchronized.setText(synchronized)
}
我怎样才能做到这一点?
非常感谢!
我总是为我的ListViews创建一个BaseAdapter。 因此,逐步介绍如何创建自己的适配器并使它工作。
public class MyCustomAdapter extends BaseAdaper {
private Activity activity;
private ArrayList<HashMap<String, String>> tracksList;
private static LayoutInflater inflater = null;
public MyCustomAdapter(Activity activity, ArrayList<HashMap<String, String>> tracksList) {
this.activity = activity;
this.trackList = trackList;
this.inflater = (LayoutInflater) activity
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return trackList.size();
}
@Override
public Object getItem(int position) {
return trackList.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
static class ViewHolder {
TextView title;
TextView isSynchronized;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
convertView = inflater.inflate(R.layout.mycustomlayout, parent, false);
holder = new ViewHolder();
holder.title = (TextView) convertView
.findViewById(R.id.track_title);
holder.isSynchronized = (TextView) convertView
.findViewById(R.id.is_synchronized);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.title.setText(tracksList.getTitle());
holder.isSynchronized.setText(tracksList.isSynchronized());
//you can do here what ever you want with the textviews like check if its == 0 etc
}
}
如何使用它:
mylistView = (ListView) findViewById(R.id.);
adapter = new MyCustomAdapter(Activity.this,
tracksList);
mylistView.setAdapter(adapter);
有关更多信息,请搜索自定义列表适配器。 为什么要使用列表适配器? 好吧,您可以更好地控制显示的内容,方式,时间。 如果您需要更复杂的列表,这不是问题。 您想要创建一个带有按钮,不同颜色的漂亮背景,没问题,只需创建mycustomlayout.xml add添加所需的内容以及所需的方式。
PS-以上只是一个示例,它不是100%可用的代码,您需要设置跟踪列表并获取所需的数据,然后创建mycustomlayout.xml。
如果要检查资源中的字符串是否设置为“ 0”,请在活动中尝试此操作getResources().getString(R.string.is_synchronized).equals("0")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.