我想在listView
中显示进度条。下面的代码是MyCustomBaseAdapter
的一部分。
public class MyCustomBaseAdapter extends BaseAdapter{ // for ListView
private static ArrayList<SearchResults> searchArrayList;
RelativeLayout footerLayout;
private LayoutInflater mInflater;
ListView listview;
public MyCustomBaseAdapter(Context context, ArrayList<SearchResults> results,ListView listview,RelativeLayout footerLayout) {
searchArrayList = results;
this.listview=listview;
this.footerLayout=footerLayout;
mInflater = LayoutInflater.from(context);
addOrRemoveFooter();
}
public View getView(int position, View convertView, ViewGroup parent) {
final SearchResults search=getItem(position);
ViewHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.custom_row_view, null);
holder = new ViewHolder();
holder.txtProject= (TextView) convertView.findViewById(R.id.ListProject);
holder.txtDescription = (TextView) convertView.findViewById(R.id.ListDescription);
//holder.txtProgress = (TextView) convertView.findViewById(R.id.ListProgress);
holder.progressBar=(ProgressBar)convertView.findViewById(R.id.downloadProgressBar);
holder.txtIn=(TextView)convertView.findViewById(R.id.ListTimeIn);
holder.txtOut=(TextView)convertView.findViewById(R.id.ListTimeOut);
holder.search = search;
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.txtProject.setText(searchArrayList.get(position).getProject());
holder.txtDescription.setText(searchArrayList.get(position).getDescription());
//holder.txtProgress.setText(searchArrayList.get(position).getProgress());
holder.txtIn.setText(searchArrayList.get(position).getTimeIn());
holder.txtOut.setText(searchArrayList.get(position).getTimeOut());
holder.progressBar.setProgress(searchArrayList.get(position).getProgress()); // Error on this line setProgress(int) cannot be applied to java.lang.String
return convertView;
}
static class ViewHolder {
TextView txtProject;
TextView txtDescription;
TextView txtIn;
TextView txtOut;
ProgressBar progressBar;
SearchResults search;
}
}
SearchResult所
private String progress="";
public void setProgress(String progress){
this.progress=progress;
}
public String getProgress()
{
return progress;
}
我收到此错误是因为setProgress
需要int
,但我在String
和get
中有setProgress
数据类型。有没有我可以用来解决错误行而不改变SearchResults
中的数据类型?
答案 0 :(得分:1)
如何将此应用于此行
holder.progressBar.setProgress(searchArrayList.get(position).getProgress());
您可以使用Integer.parseInt(String)
之类的,
holder.progressBar.setProgress(
Integer.parseInt(searchArrayList.get(position).getProgress()));
根据您在下面的评论,拆分String
,然后选择整数部分。像,
String str = searchArrayList.get(position).getProgress();
String[] arr = str.split(":\\s*");
holder.progressBar.setProgress(Integer.parseInt(arr[1]));