Ken Masters
Lt. Junior Grade
- Registriert
- Dez. 2006
- Beiträge
- 334
Hallo an alle,
ich habe folgende problemstellung: programmiert habe ich eine simple app, welches eine musikdatei abspielt. die app greift auch auf die metadaten des songs und gibt den intepreter, songnamen, einen cover (falls vorhanden) und die songlänge zurück. man hat sozusagen nur einen layout, wo alles enthalten ist. nun möchte ich das gerne aufteilen in 2 layouts und zwischen den hin und her swipen können. zur besseren verständnis und übersicht hier ein foto. ganz links sieht man die app im ganzen. die sichtweise, also ein paar kompnenten würde ich gerne aufteilen so das 2 layouts hätte (rechte seite). und zwischen denen möchte ich hin und her swipen. anhand meine bisherigen rescherche habe ich herausgefunden, dass sich fragmente dazu am besten eignen. sicher bin ich mir aber nicht, da ich nur ziemlich simple beispiele mit fragments gefunden habe. das heißt, ich weiß grob wie man mehrere "activites" mit fragmenten darstellt, mehr aber auch nicht. also nur rein obersichtlich ohne funktionen. sobald ich methoden einfüge oder die buttons/imageviews die ID's zuweise, so dass z.b. auf knopfdruck der song abgespielt werden soll, dann bekomme ich nur fehlermeldungen.
hier ist mein bisheriger code:
ich bekomme ja schon fehlermeldungen wenn ich im PlayerFragment die buttons die id's zuweise (nullpointerException). ich weiß einfach nicht wo ich das sonst machen soll bzw. wo die methoden hingehören, also in welche klasse. ich bin etwas verwirrt mit dieser sache und bitte um hilfe und ratschläge wie ich da herangehen soll. funktioniert das mit fragmenten oder muß man da anders herangehen?

danke im voraus
ich habe folgende problemstellung: programmiert habe ich eine simple app, welches eine musikdatei abspielt. die app greift auch auf die metadaten des songs und gibt den intepreter, songnamen, einen cover (falls vorhanden) und die songlänge zurück. man hat sozusagen nur einen layout, wo alles enthalten ist. nun möchte ich das gerne aufteilen in 2 layouts und zwischen den hin und her swipen können. zur besseren verständnis und übersicht hier ein foto. ganz links sieht man die app im ganzen. die sichtweise, also ein paar kompnenten würde ich gerne aufteilen so das 2 layouts hätte (rechte seite). und zwischen denen möchte ich hin und her swipen. anhand meine bisherigen rescherche habe ich herausgefunden, dass sich fragmente dazu am besten eignen. sicher bin ich mir aber nicht, da ich nur ziemlich simple beispiele mit fragments gefunden habe. das heißt, ich weiß grob wie man mehrere "activites" mit fragmenten darstellt, mehr aber auch nicht. also nur rein obersichtlich ohne funktionen. sobald ich methoden einfüge oder die buttons/imageviews die ID's zuweise, so dass z.b. auf knopfdruck der song abgespielt werden soll, dann bekomme ich nur fehlermeldungen.
hier ist mein bisheriger code:
Code:
public class MainActivity extends FragmentActivity {
SectionsPagerAdapter mSectionsPagerAdapter;
ViewPager mViewPager;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(com.example.swipeview3.R.layout.main);
// Create the adapter that will return a fragment for each of the three
// primary sections of the app.
mSectionsPagerAdapter = new SectionsPagerAdapter(
getSupportFragmentManager());
// Set up the ViewPager with the sections adapter.
mViewPager = (ViewPager) findViewById(com.example.swipeview3.R.id.pager);
mViewPager.setAdapter(mSectionsPagerAdapter);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(com.example.swipeview3.R.menu.main, menu);
return true;
}
// ------------------------------#########################------------------------------
// ------------------------------#########################------------------------------
public class SectionsPagerAdapter extends FragmentPagerAdapter {
public SectionsPagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int position) {
if(position == 0) {
PlayerFragment f = new PlayerFragment(position);
return f;
}
if(position == 1) {
SongParameterFragment f = new SongParameterFragment(position);
return f;
}
else {
Fragment fragment = new DummySectionFragment();
Bundle args = new Bundle();
args.putInt(DummySectionFragment.ARG_SECTION_NUMBER, position + 1);
fragment.setArguments(args);
return fragment;
}
}
@Override
public int getCount() {
// Show 3 total pages.
return 3;
}
@Override
public CharSequence getPageTitle(int position) {
switch (position) {
case 0:
return getString(com.example.swipeview3.R.string.title_section1).toUpperCase();
case 1:
return getString(com.example.swipeview3.R.string.title_section2).toUpperCase();
case 2:
return getString(com.example.swipeview3.R.string.title_section3).toUpperCase();
}
return null;
}
}
// ------------------------------#########################------------------------------
// ------------------------------#########################------------------------------
public static class DummySectionFragment extends Fragment {
public static final String ARG_SECTION_NUMBER = "section_number";
public DummySectionFragment() {
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Create a new TextView and set its text to the fragment's section
// number argument value.
TextView textView = new TextView(getActivity());
textView.setGravity(Gravity.CENTER);
textView.setText(Integer.toString(getArguments().getInt(
ARG_SECTION_NUMBER)));
return textView;
}
}
// ------------------------------#########################------------------------------
// ------------------------------#########################------------------------------
public static class PlayerFragment extends Fragment {
int fragmentNR;
Button btnPlay, btnStop, btnExit;
SeekBar seekBar;
public PlayerFragment(int position) {
this.fragmentNR = position;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
btnPlay = (Button)getView().findViewById(com.example.swipeview3.R.id.button_play);
btnStop = (Button)getView().findViewById(com.example.swipeview3.R.id.button_stop);
btnExit = (Button)getView().findViewById(com.example.swipeview3.R.id.button_exit);
return inflater.inflate(com.example.swipeview3.R.layout.player, container, false);
}
}
// ------------------------------#########################------------------------------
// ------------------------------#########################------------------------------
public static class SongParameterFragment extends Fragment {
int fragmentNR;
ImageView cover;
TextView songParameter, songDuration;
public SongParameterFragment(int position) {
this.fragmentNR = position;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(com.example.swipeview3.R.layout.song_parameters, container, false);
}
}
}
ich bekomme ja schon fehlermeldungen wenn ich im PlayerFragment die buttons die id's zuweise (nullpointerException). ich weiß einfach nicht wo ich das sonst machen soll bzw. wo die methoden hingehören, also in welche klasse. ich bin etwas verwirrt mit dieser sache und bitte um hilfe und ratschläge wie ich da herangehen soll. funktioniert das mit fragmenten oder muß man da anders herangehen?
danke im voraus