I am trying to get a file that I selected from my android device, I start the intent where I can select my files when a specific button is clicked in my popup window (the pasirinktiFaila button), then I try to look what was selected through Log.d(), but it shows me no results.
Here is my fragment class called KorepetitoriuiPatvirtintiMokiniai, it has the onActivityResult method.
public class KorepetitoriuiPatvirtintiMokiniai extends Fragment {
private RecyclerView recyclerView;
private ArrayList<KorepetitoriuiPatvirtintasMokinysKortele> arrayList;
private KorepetitoriuiPatvirtintiMokiniaiCardAdapter adapter;
private TextView emptyRecycler;
public KorepetitoriuiPatvirtintiMokiniai() {
// Required empty public constructor
}
public static KorepetitoriuiPatvirtintiMokiniai newInstance() {
KorepetitoriuiPatvirtintiMokiniai fragment = new KorepetitoriuiPatvirtintiMokiniai();
Bundle args = new Bundle();
fragment.setArguments(args);
return fragment;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_korepetitoriui_patvirtinti_mokiniai, container, false);
recyclerView = view.findViewById(R.id.recyclerKorepetitoriuiPatvirtintiMokiniai);
recyclerView.setHasFixedSize(true);
recyclerView.setLayoutManager(new LinearLayoutManager(this.getContext()));
emptyRecycler = view.findViewById(R.id.neraMokiniuKorepetitoriui);
arrayList = new ArrayList<KorepetitoriuiPatvirtintasMokinysKortele>();
GautiPatvirtintusMokiniusTask task = new GautiPatvirtintusMokiniusTask(prisijungti.currentKorepetitorius.getId());
task.execute();
return view;
}
@Override
public void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if(requestCode == 1 && resultCode == Activity.RESULT_OK) {
Uri uri = data.getData();
String path = uri.getPath();
Log.d("file", path);
}
}
public class GautiPatvirtintusMokiniusTask extends AsyncTask<Void, Void, Void> {
private int korepetitoriausId;
public GautiPatvirtintusMokiniusTask(int korepetitoriausId) {
this.korepetitoriausId = korepetitoriausId;
}
@Override
protected Void doInBackground(Void... voids) {
try {
URL url = new URL("http://192.168.0.104/PHPscriptai/gautiKorepetitoriuiPatvirtintusMokinius.php?korepetitoriaus_id=" + korepetitoriausId);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setRequestProperty("Accept", "application/json");
BufferedReader br = new BufferedReader(new InputStreamReader((conn.getInputStream())));
StringBuilder sb = new StringBuilder();
String output;
while ((output = br.readLine()) != null) {
sb.append(output);
}
conn.disconnect();
String jsonString = sb.toString();
JSONArray jsonArray = new JSONArray(jsonString);
for (int i = 0; i < jsonArray.length(); i++) {
JSONObject obj = jsonArray.getJSONObject(i);
String vardasMokinio = obj.getString("pilnas_mokinio_vardas");
int mokinioId = obj.getInt("mokinio_id");
arrayList.add(new KorepetitoriuiPatvirtintasMokinysKortele(vardasMokinio, mokinioId));
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
@Override
protected void onPostExecute(Void result) {
if (arrayList.isEmpty()) {
emptyRecycler.setVisibility(View.VISIBLE);
recyclerView.setVisibility(View.GONE);
} else {
emptyRecycler.setVisibility(View.GONE);
recyclerView.setVisibility(View.VISIBLE);
adapter = new KorepetitoriuiPatvirtintiMokiniaiCardAdapter(arrayList, getContext());
recyclerView.setAdapter(adapter);
}
}
}
}
My adapter class:
public class KorepetitoriuiPatvirtintiMokiniaiCardAdapter extends RecyclerView.Adapter<KorepetitoriuiPatvirtintiMokiniaiCardHolder> {
private ArrayList<KorepetitoriuiPatvirtintasMokinysKortele> list;
private Context context;
private Dialog popup;
public KorepetitoriuiPatvirtintiMokiniaiCardAdapter(ArrayList<KorepetitoriuiPatvirtintasMokinysKortele> list, Context context) {
this.list = list;
this.context = context;
}
@NonNull
@Override
public KorepetitoriuiPatvirtintiMokiniaiCardHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.korepetitoriaus_mokinys_item, parent, false);
return new KorepetitoriuiPatvirtintiMokiniaiCardHolder(view);
}
@Override
public void onBindViewHolder(@NonNull KorepetitoriuiPatvirtintiMokiniaiCardHolder holder, int position) {
KorepetitoriuiPatvirtintasMokinysKortele sarasas = list.get(position);
popup = new Dialog(context);
KorepetitoriuiPatvirtintiMokiniaiCardHolder.mokinioVardas.setText(sarasas.getVardasMokinio());
KorepetitoriuiPatvirtintiMokiniaiCardHolder.parasyti.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(context, susirasyti.class);
intent.putExtra("dabartinis_id", prisijungti.currentKorepetitorius.getId());
intent.putExtra("gavejas_id", sarasas.getMokinioId());
context.startActivity(intent);
}
});
KorepetitoriuiPatvirtintiMokiniaiCardHolder.pridetiMedziaga.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
View popupView = LayoutInflater.from(context).inflate(R.layout.popup_pasirinkti_faila, null);
Button pasirinktiFaila = popupView.findViewById(R.id.pasirinktiFailaButton);
Button uzdaryti = popupView.findViewById(R.id.uzdarytiIkeltiLanga);
EditText pavadinimas = popupView.findViewById(R.id.pavadinimasPopup);
Button ikeltiFaila = popupView.findViewById(R.id.ikeltiFaila);
pasirinktiFaila.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("*/*");
((Activity) context).startActivityForResult(intent, 1);
}
});
ikeltiFaila.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// TODO
// upload the file
}
});
uzdaryti.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
popup.dismiss();
}
});
popup = new Dialog(context);
popup.setContentView(popupView);
popup.show();
}
});
}
@Override
public int getItemCount() {
return list.size();
}
}
My card holder class:
public class KorepetitoriuiPatvirtintiMokiniaiCardHolder extends RecyclerView.ViewHolder{
public static TextView mokinioVardas;
public static Button parasyti, pridetiMedziaga;
public KorepetitoriuiPatvirtintiMokiniaiCardHolder(@NonNull View itemView) {
super(itemView);
mokinioVardas = itemView.findViewById(R.id.vardasKorteleMokinioPatvirtintas);
parasyti = itemView.findViewById(R.id.korepetitoriusParasyti);
pridetiMedziaga = itemView.findViewById(R.id.korepetitoriusPridetiMedziaga);
}
}
Am I doing something wrong?
Tried to get a file from my android device through a button click in my android app, and check if the selected file was actually selected by logging, got no results.