나는 안드로이드 프로그래밍의 초보자입니다. 어쩌면 바보 같은 질문 이겠지요 ... 나는 비동기 작업에 대해 많이 읽으므로 진행률 막대를 추가 할 수 있지만 해결책을 찾을 수는 없습니다 내가 필요합니다 :gridview에 진행률 막대를 추가하는 방법
나는 격자보기를 보여줘야하는데, 나는 그 안에 보여줄 이미지와 텍스트의 데이터를 검색해야합니다. asynctask에서 배열에 상대 데이터를로드하면 그리드의 어댑터에 데이터가 없으며 충돌이 발생합니다. 그렇지 않으면 진행률 대화 상자를 gridview의 oncreate 메서드에 넣으면 데이터로드를 기다리지 만 진행률 막대를 표시하지 않습니다 (데이터로드 중에 데이터로드가 끝날 때까지). 그래서 나는 올바른 접근법을 모른다. 당신이 무엇을 할
...
나는 단지 gridview에 시작하여 데이터를로드, 진행 대화 상자를 보여주고, 마지막에하는 이전 활동을 시작할 생각하지만 그렇지 않아 나에게 경제적 인 접근 방식을 보인다 생각한다?So : 어떻게하면 asynk 작업에서 어댑터에 데이터를 첨부 할 수 있습니까? notyfydatasetchange와 함께 시도했지만 작동하지 않습니다. 내 onCreate 방법에
이 있습니다. mAdapter = new ImageAdapter (this); mGrid.setAdapter (mAdapter);
하지만 같은 어댑터 생성자는 데이터 (알 적어도 개체의 수 ...)
필요하고 이것이 나의 어댑터입니다 :
public class ImageAdapter extends BaseAdapter{
Context mContext;
public final int ACTIVITY_CREATE = dirObjList.size()*2;
public ImageAdapter(Context c){
mContext = c;
map = new HashMap<Integer,SoftReference<Bitmap>>();
}
public Map<Integer,SoftReference<Bitmap>> map;
@Override
public int getCount() {
return dirObjList.size();
}
public RowData getItem(int position) {
return dirObjList.get(position);
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
ViewHolder holder = null;
RowData currDirObj= getItem(position);
if(convertView==null){
LayoutInflater li = getLayoutInflater();
convertView = li.inflate(R.layout.icon, null);
holder = new ViewHolder();
holder.tv = (TextView)convertView.findViewById(R.id.icon_text);
holder.iv = (ImageView)convertView.findViewById(R.id.icon_image);
convertView.setTag(holder);
}
else{
holder = (ViewHolder)convertView.getTag();
}
holder.iv=setThumbs(holder.iv,position);
holder.tv.setText(currDirObj.mTitle);
convertView.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
SharedPreferences indexPrefs = getSharedPreferences("currentIndex",
MODE_PRIVATE);
SharedPreferences.Editor indexEditor = indexPrefs.edit();
indexEditor.putInt("currentIndex", 0);
SharedPreferences drPrefs = getSharedPreferences("currentDir",
MODE_PRIVATE);
SharedPreferences.Editor drPath = drPrefs.edit();
drPath.putString("currentDir", dirObjList.get(position).mDetail);
drPath.commit();
final Intent intent = new Intent(ImageGrid.this, SpeakinGallery.class);
startActivity(intent);
}
});
return convertView;
}
}
이 내 비동기 작업
입니다public class MyTask extends AsyncTask<Void, Void, String> {
ProgressDialog progress;
public MyTask(ProgressDialog progress) {
this.progress = progress;
}
public void onPreExecute() {
progress.show();
}
public String doInBackground(Void...unused) {
getSubDirs(startDIRECTORY);
return "foo";
}
public void onPostExecute(Void unused) {
progress.dismiss();
//mAdapter.notifyDataSetChanged();
}
}
무엇 당신의 AsyncTask를이 생겼 전화? –