Метод ввода / вывода с другим значением - PullRequest
0 голосов
/ 13 апреля 2020

У меня проблема с l oop: я использую для , чтобы получить доступ к различным файлам, хранящимся в firebase, получить URL каждого файла, дать им имя, затем показать их в listview. Проблема здесь в параметре l oop, который изменяет значение, выбрасывая новый метод:

  1. перед getDownloadUrl метод, он отлично работает
  2. внутри метода значение k всегда равно 3

код:

public class PDFActivity extends AppCompatActivity {
    public static StorageReference StorageRef;
    Button Download;
    TextView Url;
    public static ListView listView;
    static int nombrerapport;
    public static String[] RapportsNames;
    public String zone;
    Uri downloadUrl;
    public DatabaseReference Databasezone;
    public static ArrayList<RapportInfo> RapportList;
    public String url;
    private static int k ;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Databasezone = FirebaseDatabase.getInstance().getReference();
        RapportList = new ArrayList<RapportInfo>();
        RapportsNames = new String[2];
        setContentView(R.layout.activity_pdf);
        listView = findViewById(R.id.listVieww);
        Databasezone.addValueEventListener(new ValueEventListener() {
            public void onDataChange(DataSnapshot dataSnapshot) {
                Upload Valeurs = dataSnapshot.child("Users").child(FirebaseAuth.getInstance().getUid()).getValue(Upload.class);
                zone = Valeurs.getmZone();
                String value = (String) dataSnapshot.child("Messages/Test/Nombre_rapport").getValue();
                nombrerapport = Integer.parseInt(value);
                for(k=1;k<=2;k++){
                    StorageRef = FirebaseStorage.getInstance().getReferenceFromUrl("gs://2bf33.appspot.com/files/Rapport_Client"+String.valueOf(k)+".pdf");
                    Toast.makeText(PDFActivity.this, ""+k+"", Toast.LENGTH_SHORT).show();
                    StorageRef.getDownloadUrl().addOnSuccessListener(new OnSuccessListener<Uri>() {
                        @Override
                        public void onSuccess(Uri uri) {
                                  Toast.makeText(PDFActivity.this, ""+k+"", Toast.LENGTH_SHORT).show();
                                  downloadUrl = uri;
                                  url = String.valueOf(downloadUrl);
                                  Toast.makeText(PDFActivity.this, ""+url+"", Toast.LENGTH_SHORT).show();
                                  RapportList.add(new RapportInfo("Rapport"+ String.valueOf(k)+ "", url));
                            RapportsNames[0] = RapportList.get(0).getName();
                           // Toast.makeText(PDFActivity.this, ""+RapportsNames[0]+"", Toast.LENGTH_SHORT).show();
                           /** if(i==nombrerapport) {
                                ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_list_item_1, RapportsNames) {
                                    @Override
                                    public View getView(int position, View convertView, ViewGroup parent) {
                                        // Cast the list view each item as text view
                                        TextView item = (TextView) super.getView(position, convertView, parent);


                                        // Set the list view item's text color
                                        item.setTextColor(Color.parseColor("#000000"));


                                        // Change the item text size
                                        item.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 18);

                                        // return the view
                                        return item;
                                    }
                                };
                                listView.setAdapter(arrayAdapter);
                                }**/
                                listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
                                   @Override
                                   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                                       RapportInfo upload = RapportList.get(position);
                                       Intent intent = new Intent(Intent.ACTION_VIEW);
                                       intent.setData(Uri.parse(upload.getUrl()));
                                       startActivity(intent);
                                   }
                               });
                            }


                        //}
                    }).addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception exception) {
                            // Handle any errors
                        }
                    }); }

            }

            @Override
            public void onCancelled(DatabaseError databaseError) {

            }

        });

    }

}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...