Hallöchen,
hab die Fragments nun geschmissen. In meiner MainActivity sind erstmal 3 Grund-Listviews vorhanden, der per Viewpager durchgegangen werden können.
Aus jedem dieser Listviews soll per Klick auf ein Item eine "Detailansicht" dieses Items angezeigt werden (auch als Listview). Nur bin ich mir da mit der Vorgehensweise nicht so ganz sicher...
Ich hätte 6 Listviews, diese aber alle in den Viewpager zu packen, geht nicht, da ich ja über die 3 Detailansichten nur über den ItemKlick zugreifen können soll.
Bei Klick auf ein Detail-Item nen Listener der MainActivity zu starten, der dann ein Listview in ... (wo rein eigentlich? In den Viewpager würde wohl Probleme geben.), ist wohl auch nicht das Gelbe vom Ei.
Der Projektname ist das Ergebnis meines heutigen Frustes :-(
Wäre super, wenn Ihr ein paar Tipps hättet..
Viele Grüße,
Jan
MyActivity
ListeOverviewAdapter
Activity-Layout
hab die Fragments nun geschmissen. In meiner MainActivity sind erstmal 3 Grund-Listviews vorhanden, der per Viewpager durchgegangen werden können.
Aus jedem dieser Listviews soll per Klick auf ein Item eine "Detailansicht" dieses Items angezeigt werden (auch als Listview). Nur bin ich mir da mit der Vorgehensweise nicht so ganz sicher...
Ich hätte 6 Listviews, diese aber alle in den Viewpager zu packen, geht nicht, da ich ja über die 3 Detailansichten nur über den ItemKlick zugreifen können soll.
Bei Klick auf ein Detail-Item nen Listener der MainActivity zu starten, der dann ein Listview in ... (wo rein eigentlich? In den Viewpager würde wohl Probleme geben.), ist wohl auch nicht das Gelbe vom Ei.
Der Projektname ist das Ergebnis meines heutigen Frustes :-(
Wäre super, wenn Ihr ein paar Tipps hättet..
Viele Grüße,
Jan
MyActivity
Code:
package jan.****teuch;
import android.content.Context;
import android.os.Parcelable;
import android.support.v7.app.ActionBarActivity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import java.util.List;
import java.util.Vector;
import jan.****teuch.Adapter.ListeOverviewAdapter;
import jan.****teuch.Adapter.RezeptOverviewAdapter;
import jan.****teuch.Adapter.VorratOverviewAdapter;
import jan.****teuch.Model.ListeOverviewModel;
public class MyActivity extends ActionBarActivity {
private Context context;
private Datasource datasource;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_my);
context = this;
this.datasource = new Datasource(this);
ListView lvListeOverview = new ListView(context);
ListView lvRezeptOverview = new ListView(context);
ListView lvVorratOverview = new ListView(context);
//ListView lvListe = new ListView(context);
//ListView lvRezept = new ListView(context);
//ListView lvVorrat = new ListView(context);
lvListeOverview.setAdapter(new ListeOverviewAdapter(context, this.datasource.getListeOverviewData()));
lvRezeptOverview.setAdapter(new RezeptOverviewAdapter(context, this.datasource.getRezeptOverviewData()));
lvVorratOverview.setAdapter(new VorratOverviewAdapter(context, this.datasource.getVorratOverviewData()));
Vector<View> pages = new Vector<View>();
pages.add(lvListeOverview);
pages.add(lvRezeptOverview);
pages.add(lvVorratOverview);
//pages.add(lvListe);
//pages.add(lvRezept);
//pages.add(lvVorrat);
ViewPager vp = (ViewPager) findViewById(R.id.pager);
CustomPagerAdapter adapter = new CustomPagerAdapter(context,pages);
vp.setAdapter(adapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.my, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public class CustomPagerAdapter extends PagerAdapter {
private Context mContext;
private Vector<View> pages;
public CustomPagerAdapter(Context context, Vector<View> pages) {
this.mContext=context;
this.pages=pages;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View page = pages.get(position);
container.addView(page);
return page;
}
@Override
public int getCount() {
return pages.size();
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view.equals(object);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
}
ListeOverviewAdapter
Code:
package jan.****teuch.Adapter;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.TextView;
import java.util.List;
import jan.****teuch.R;
import jan.****teuch.Model.ListeOverviewModel;
public class ListeOverviewAdapter extends ArrayAdapter<ListeOverviewModel> {
Context context;
List<ListeOverviewModel> data;
public ListeOverviewAdapter(Context con, List<ListeOverviewModel> objects) {
super(con, R.layout.listeoverview_adapter , objects);
this.context = con;
this.data = objects;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
ListeOverviewModel ekListe = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
ViewHolder viewHolder;
if (convertView == null) {
viewHolder = new ViewHolder();
convertView = LayoutInflater.from(getContext()).inflate(R.layout.listeoverview_adapter, parent, false);
viewHolder.tvName = (TextView) convertView.findViewById(R.id.listeOverview_tvName);
viewHolder.tvProgress = (TextView) convertView.findViewById(R.id.listeOverview_tvProgress);
convertView.setTag(viewHolder);
}
else {
viewHolder = (ViewHolder) convertView.getTag();
}
// Populate the data into the template view using the data object
viewHolder.tvName.setText(ekListe.getName());
viewHolder.tvProgress.setText(ekListe.getProgress());
// Return the completed view to render on screen
return convertView;
}
private static class ViewHolder {
TextView tvName;
TextView tvProgress;
}
}
Activity-Layout
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:paddingBottom="@dimen/activity_vertical_margin"
tools:context=".MyActivity">
<android.support.v4.view.ViewPager
android:id="@+id/pager"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</RelativeLayout>