각 행에 TextView
과 ImageButton
을 포함하는 ListView
에 대해 ArrayAdapter를 구현했습니다. 하여 ImageButton의 배경 이미지가 어떤 조건에 따라이 두 가지 옵션을 사용할 수 있습니다 파일이 존재하는 경우안드로이드 : ImageButton의 배경을 동적으로 바꿔서 보여주기
public View getView(int position, View convertView, ViewGroup parent) {
View vi=convertView;
if(convertView==null)
vi = inflater.inflate(R.layout.item_with_button, null);
File f = new File(PATH_TO_FILE);
if(f.exists()){
imbutton =(ImageButton)vi.findViewById(R.id.btn_image);
imbutton.setBackgroundResource(R.drawable.done);
}else
{
imbutton =(ImageButton)vi.findViewById(R.id.btn_image);
imbutton.setBackgroundResource(R.drawable.download);
imbutton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String url = URL;
new DownloadFileAsync(pos).execute(url);
}
});
}
...
return vi;
}
은, 그때하여 ImageButton에 대한 이미지를 "수행"을 설정합니다. 파일이 없으면 "다운로드"이미지를 설정합니다.
사용자가 ImageButton
을 클릭하면 파일이 다운로드되고 각각의 이미지를 변경해야합니다. getView
은 화면에서이 ImageButton
이 사라질 때까지 사용자가 ListView
을 스크롤 한 다음 뒤로 스크롤 할 때만 호출됩니다. 버튼을 누르면 새 배경 이미지가 나타납니다.
그러나 지금은 새 이미지를 표시하는 버튼을 무효화 할 수 없습니다.
나는 비동기 다운로드를 위해이 클래스를 사용 : http://www.java-samples.com/showtutorial.php?tutorialid=1521나는
@Override
protected void onPostExecute(String unused) {
activity.dismissDialog(DIALOG_DOWNLOAD_PROGRESS);
}
하지만 성공하지 않고 기능
에currentbutton.invalidate()
같은 것을 확인했습니다.
ImageButton
의 새로운 배경 이미지를 표시하려면 어떻게해야합니까?
Brilliant, thanks –