- Forum-Beiträge: 14
05.06.2017, 23:44:51 via Website
05.06.2017 23:44:51 via Website
Hallo zusammen... (in voller Hoffnung )
wir müssen in der Schule gerade unsere erste Android App entwickeln. Ist leider alles nicht so einfach. Ganz allgemein zur Idee: Es gibt eine Kategorie (z.B. Inseln) die eine Adapter Klasse enthält. Wenn die Insel-Kategorie ausgewählt ist, kann man inzwischen zwischen unterschiedlichen Inseln hin und her swipen. Das Layout zum swipen enthält einen TextView der mitzählt bei der wie vielten Insel wir gerade sind (z.B. 2/10). Darunter befindet sich dann ein Image welches in der Adapter Class instanziiert wird und darunter ist mein großes Problem. Ich hab einen ImageButton eingebaut. Der soll am Ende dazu dienen, dass man eine Insel als Favorit markieren kann. Aktuell funktioniert das so, dass die ImageResource durch klicken geändert wird, aber nirgendwo abgespeichert ist (wirklich nur provisorisch...).
Ziel ist auf jeden Fall, dass wenn ich mich erneut einlogge, die ImageButton noch so aussehen wie zuvor. Leider kenn ich mich bisher nicht gut damit aus. Als Neuling hab ich mich mit SQLite und SharedPreferences versucht, in beiden Fällen jedoch erfolglos.
Ich füge einfach mal den wichtigsten Code ein, damit ihr einen Eindruck vom Aufbau bekommt. Vielleicht kennt sich hier jemand aus und kann mal ein Auge darauf werfen. Wäre wirklich dankbar über jeden Vorschlag... So langsam bin ich nämlich am verzweifeln
Layout für die Inseln
<RelativeLayout xmlns:android="...link entfernt weil neues Mitglied..."
xmlns:app="...link entfernt weil neues Mitglied..."
xmlns:tools="...link entfernt weil neues Mitglied..."
android:id="@+id/activity_suggestion"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context="com.hska.app.activities.SuggestionActivity" >
<android.support.v7.widget.Toolbar
android:id="@+id/suggestion_toolbar"
android:layout_width="match_parent"
android:layout_height="55dp"
android:background="@color/colorTextHint"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.ActionBar"
app:popupTheme="@style/ThemeOverlay.AppCompat.Light"/>
<TextView
android:id="@+id/category_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="85dp"
android:text="Beautiful Islands"
android:textColor="@android:color/black"
android:textSize="28sp"
android:gravity="center"
android:textStyle="bold"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<android.support.v4.view.ViewPager
android:id="@+id/image_swipe"
android:layout_width="match_parent"
android:layout_height="590dp"
android:layout_marginTop="130dp" />
</RelativeLayout>
Layout zum Adapter (das was man wischen kann)
<LinearLayout xmlns:android="...link entfernt weil neues Mitglied..."
xmlns:app="...link entfernt weil neues Mitglied..."
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/image_count"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="Here we count..."
android:textColor="@android:color/black"
android:textSize="16sp" />
<ImageView
android:id="@+id/swipe_image"
android:layout_width="match_parent"
android:layout_height="365dp"
android:layout_marginBottom="20dp"
android:layout_marginTop="30dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"/>
<ImageButton
android:id="@+id/favourite_button"
android:layout_width="60dp"
android:layout_height="60dp"
android:layout_gravity="center"
android:background="@android:color/transparent"
android:onClick="onClickFav"
android:scaleType="fitCenter"
android:src="@drawable/heart" />
</LinearLayout>
Insel Klasse
public class SuggestionActivity extends AppCompatActivity {
ViewPager viewPager;
SwipeAdapter adapter;
private boolean nofav = true;
private final AppCompatActivity activity = SuggestionActivity.this;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_suggestion);
viewPager = (ViewPager) findViewById(R.id.image_swipe);
adapter = new SwipeAdapter(this);
viewPager.setAdapter(adapter);
Toolbar sToolbar = (Toolbar) findViewById(R.id.suggestion_toolbar);
setSupportActionBar(sToolbar);
}
public void onClickFav(View v) {
ImageButton favouriteButton = (ImageButton) v;
Boolean isFav = favouriteButton.getTag() == null ? Boolean.FALSE : (Boolean) favouriteButton.getTag();
favouriteButton.setImageResource(isFav ? R.drawable.heart : R.drawable.heart_red);
if (isFav) {
Toast.makeText(SuggestionActivity.this, "No favourite anymore...",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(SuggestionActivity.this, "Woah, new favourite!",
Toast.LENGTH_SHORT).show();
}
favouriteButton.setTag(!isFav);
}
}
...und zuletzt noch die Adapter Klasse
public class SwipeAdapter extends PagerAdapter {
private int[] image_resources = {
R.drawable.island1,
R.drawable.island2,
R.drawable.island3,
R.drawable.island4,
R.drawable.island5,
R.drawable.island6,
R.drawable.island7,
R.drawable.island8,
R.drawable.island9,
R.drawable.island10
};
private Context context;
private LayoutInflater layoutInflater;
public SwipeAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return image_resources.length;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return (view == (LinearLayout) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View item_view = layoutInflater.inflate(R.layout.swipe_layout,container,false);
ImageView imageView = (ImageView) item_view.findViewById(R.id.swipe_image);
TextView textView = (TextView) item_view.findViewById(R.id.image_count);
imageView.setImageResource(image_resources[position]);
textView.setText("["+(position+1)+"/10]");
container.addView(item_view);
return item_view;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((LinearLayout) object);
}
}
...falls wer bis hier unten gelesen hat, allein Danke dafür!
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.