- Forum-Beiträge: 62
17.07.2014, 12:31:38 via Website
17.07.2014 12:31:38 via Website
Hallo Leute,
ich sitze gerade an einem eigentlich recht Grundlegenden Problem. Und zwar möchte ich eine Imageview die sich in einem Fragment befindet (für Tabs) mit einem Bild aus dem Dateisystem füttern. Ich habe die relevante Codestelle mit "!" markiert:
public static class PlaceholderFragment extends Fragment {
MeineProfileinstellungenDataModel DataModel;
static MeineProfileinstellungenDatasource datasource;
private static final String ARG_SECTION_NUMBER = "section_number";
public static PlaceholderFragment newInstance(int sectionNumber) {
PlaceholderFragment fragment = new PlaceholderFragment();
Bundle args = new Bundle();
args.putInt(ARG_SECTION_NUMBER, sectionNumber);
fragment.setArguments(args);
return fragment;
}
public PlaceholderFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
switch (getArguments().getInt(ARG_SECTION_NUMBER)){
case 1: View rootView = inflater.inflate(R.layout.fragment_main, container,
false);
datasource = new MeineProfileinstellungenDatasource(getActivity());
datasource.open();
DataModel = datasource.getProfileinstellungen();
TextView NameAnzeigen = (TextView) rootView.findViewById(R.id.tvNameAnzeigen);
NameAnzeigen.setText(DataModel.getName());
TextView GeburtstagAnzeigen = (TextView) rootView.findViewById(R.id.tvGeburtstagAnzeigen);
GeburtstagAnzeigen.setText(new StringBuilder()
// Month is 0 based, just add 1
.append(DataModel.getTag()).append("-").append(DataModel.getMonat() + 1).append("-")
.append(DataModel.getJahr()).append(" "));
datasource.close();
ImageView Profilbild = (ImageView) rootView.findViewById(R.id.imageViewProfilbild);
Profilbild.setImageBitmap(getBitmap()); //!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
return rootView;
case 2: View rootView2 = inflater.inflate(R.layout.fragment_main2, container,
false);
return rootView2;
case 3: View rootView3 = inflater.inflate(R.layout.fragment_main3, container,
false);
return rootView3;
default: return null;}
}
}
Das ganze ist eine innere Klasse. Hier noch die getBitmap-Methode:
private Bitmap getBitmap() {
FileInputStream in = null;
try {
in = openFileInput("Profilbild.png");
} catch (FileNotFoundException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
Bitmap btm = BitmapFactory.decodeStream(in);
try {
in.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return btm;
}
Das Problem ist, dass er bei der getBitmap Methode entweder sagt cannot make a static reference to a non-static method, und wenn ich dann getBitmap auf static setze, dann sagt er das gleiche für die openFileInput Methode.
Ich weiß, dass es daran liegt, das die Klasse PlaceholderFragment static ist, aber mir fällt keine lösung ein.
Ich hoffe ihr könnt mir weiterhelfen
mfg Luca
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.