#java #android #android-recyclerview #firebase-storage
#java #Android #android-recyclerview #firebase-storage
Вопрос:
Adapter.java класс здесь:
public class LesionAdapter extends BaseAdapter {
ArrayList<usersickness> lesionList;
Context context;
LayoutInflater vi;
public LesionAdapter(Context context, ArrayList<usersickness> lesions) { //, LayoutInflater layoutInflater
this.lesionList = lesions;
this.context = context;
this.vi = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount() {
return lesionList.size();
}
@Override
public Object getItem(int i) {
return lesionList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int i, View convertView, ViewGroup viewGroup) { //convertview -> view
ViewHolder holder;
if(convertView == null){
holder = new ViewHolder();
convertView = vi.inflate(R.layout.lesion_item, null);
holder.img = convertView.findViewById(R.id.les_img);
holder.name = convertView.findViewById(R.id.les_name);
holder.date = convertView.findViewById(R.id.les_date);
holder.area = convertView.findViewById(R.id.les_area);
holder.number = convertView.findViewById(R.id.les_number);
holder.checkBox = convertView.findViewById(R.id.les_checkBox);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
String path = lesionList.get(i).getPhoto_id();
Glide.with(context).load(path).into(holder.img);
Picasso.get().load(path).resize(140,140).centerCrop().into(holder.img);
holder.img.setImageResource(R.drawable.rosacea1);
holder.name.setText(lesionList.get(i).getClassificationNameRatio());
holder.date.setText(lesionList.get(i).getDate());
holder.area.setText(lesionList.get(i).getSegLesionArea());
holder.number.setText(lesionList.get(i).getSegLesionNumber());
holder.checkBox.setChecked(lesionList.get(i).getCheckBox());
holder.checkBox.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
boolean isSelected = ((CheckBox)v).isChecked();
lesionList.get(i).setCheckBox(isSelected);
}
});
return convertView;
}
static class ViewHolder {
public ImageView img;
public TextView name;
public TextView date;
public TextView area;
public TextView number;
public CheckBox checkBox;
}
public ArrayList<usersickness> getSelectLesionList(){
ArrayList<usersickness> list = new ArrayList<>();
for(int i=0;i<lesionList.size();i ){
if(lesionList.get(i).getCheckBox())
list.add(lesionList.get(i));
}
return list;
}
зависимости build.gradle находятся здесь:
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:28.0.0'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
implementation 'com.google.firebase:firebase-auth:19.3.2'
implementation 'com.google.firebase:firebase-database:19.4.0'
implementation 'com.google.firebase:firebase-storage:19.2.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.1'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
implementation 'com.jjoe64:graphview:4.2.2'
implementation files('libs/activation.jar')
implementation files('libs/additional.jar')
implementation files('libs/mail.jar')
implementation "androidx.core:core-ktx: "
implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk7:$kotlin_version"
implementation 'com.squareup.picasso:picasso:2.71828'
implementation 'com.github.bumptech.glide:glide:4.11.0'
implementation 'com.nostra13.universalimageloader:universal-image-loader:1.9.5'
implementation 'com.android.support:recyclerview-v7:28.0.0'
implementation 'com.android.support:cardview-v7:28.0.0'
Я извлекаю из хранилища Firebase URL-адреса загружаемых изображений. URL-адрес выглядит в следующем формате:https://firebasestorage.googleapis.com/v0/b /[ProjectID].appspot.com/o /[имя_фоЛьда]/[Имя файла]
Затем я помещаю URL-путь в модули Picasso и Glide, но они не работают. Код, который раньше работал в виде listview, теперь ничего не перечисляет. Страница пуста, а другие текстовые представления не видны. Теперь видна только кнопка.
Мне нужна помощь, поскольку я не могу понять, в чем проблема.
Можете ли вы, пожалуйста, помочь мне это исправить? Или как еще я могу получить изображения из хранилища и показать их в imageview?
Комментарии:
1. Я попробовал модули Picasso и Glide отдельно. Я удалил строки комментариев, помещая их здесь.
2. Если вы можете взять URL-адрес и загрузить его в браузере, значит, вы делаете что-то не так в своем коде, который загружает изображение.
3. Да, я могу получить доступ к URL-адресу из браузера. Требуется другое разрешение доступа? Есть ли конфликт в приложении? Я не смог его найти, у вас есть какие-либо идеи?
4. URL-адреса для загрузки не требуют никаких разрешений.