पर SimpleCursorAdapter एक ViewPager में दिखाने के लिए एक SimpleCursorAdapter का उपयोग करके ListView कैसे प्राप्त करूं? केवल पेजर ठीक काम करता है और ListView एक सूची एक्टिविटी में ठीक काम करता है, लेकिन मुझे नहीं पता कि यह गतिविधि में कैसे काम करता है (शायद यह समस्या है)।एक ViewPager
public class Player extends Activity {
private ViewPager pager;
private static int NUMERO_DE_TELAS = 3;
private AdaptadorDeTelas adaptador;
//Para debug apagar no final
final String BABAS = "babas";
ContentResolver mContentResolver;
ListView listView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Adaptador para criar o viewpager
adaptador = new AdaptadorDeTelas();
pager = (ViewPager)findViewById(R.id.pageradapter);
pager.setAdapter(adaptador);
pager.setCurrentItem(1);
}
private class AdaptadorDeTelas extends PagerAdapter{
@Override
public int getCount(){
return NUMERO_DE_TELAS;
}
@Override
public Object instantiateItem(View collection, int position){
View layout;
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
if(position == 0){
layout = inflater.inflate(R.layout.layout_zero, null);
}else if(position == 1){
layout = inflater.inflate(R.layout.layout_um, null);
}else{
Uri todasMusicas = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI;
//Seleciona as tabelas a serem retornadas do content audio.media
String[] projection = {MediaStore.Audio.Media._ID, MediaStore.Audio.Media.TITLE
};
//Pega todas as músicas no aparelho
String selection = MediaStore.Audio.Media.IS_MUSIC + " != 0";
Cursor cursor;
cursor = Player.this.managedQuery(
todasMusicas,
projection,
selection,
null,
MediaStore.Audio.Media.TITLE + " ASC");
String[] from = new String []{MediaStore.Audio.Media.TITLE};
int[] to = new int[] {R.id.textView1};
View v = (View) findViewById(R.layout.layout_dois);
listView = (ListView) findViewById(R.id.listView1);
SimpleCursorAdapter meuAdaptador = new SimpleCursorAdapter(Player.this, R.layout.layout_dois, cursor, from, to);
listView.setAdapter(meuAdaptador);
layout = listView;;
}
((ViewPager)collection).addView((View) layout, 0);
return layout;
}
@Override
public void destroyItem(View collection, int position, Object view){
((ViewPager) collection).removeView((View)view);
}
@Override
public boolean isViewFromObject(View view, Object object){
return view==((View)object);
}
@Override
public void finishUpdate(View arg0){}
@Override
public void restoreState(Parcelable arg0, ClassLoader arg1){}
@Override
public Parcelable saveState(){
return null;
}
@Override
public void startUpdate(View arg0){}
}
मैं किसी को जो बाहर helpme के लिए अग्रिम में, ViewPager के पन्नों में से एक में एसडी कार्ड में संगीत की एक सूची दिखाने के लिए कोशिश कर रहा हूँ धन्यवाद।
Ps: कोड में टिप्पणियों में खराब अंग्रेजी और पुर्तगाली के लिए खेद है।
01-15 16:48:41.623: W/dalvikvm(270): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
01-15 16:48:41.653: E/AndroidRuntime(270): FATAL EXCEPTION: main
01-15 16:48:41.653: E/AndroidRuntime(270): java.lang.NullPointerException
01-15 16:48:41.653: E/AndroidRuntime(270): at br.com.babas.player.Player$AdaptadorDeTelas.instantiateItem(Player.java:113)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:321)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.support.v4.view.ViewPager.populate(ViewPager.java:441)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.support.v4.view.ViewPager.onAttachedToWindow(ViewPager.java:563)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.View.dispatchAttachedToWindow(View.java:6016)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1116)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1121)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1121)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1121)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.ViewGroup.dispatchAttachedToWindow(ViewGroup.java:1121)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.ViewRoot.performTraversals(ViewRoot.java:727)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.os.Handler.dispatchMessage(Handler.java:99)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.os.Looper.loop(Looper.java:123)
01-15 16:48:41.653: E/AndroidRuntime(270): at android.app.ActivityThread.main(ActivityThread.java:4627)
01-15 16:48:41.653: E/AndroidRuntime(270): at java.lang.reflect.Method.invokeNative(Native Method)
01-15 16:48:41.653: E/AndroidRuntime(270): at java.lang.reflect.Method.invoke(Method.java:521)
01-15 16:48:41.653: E/AndroidRuntime(270): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
01-15 16:48:41.653: E/AndroidRuntime(270): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
01-15 16:48:41.653: E/AndroidRuntime(270): at dalvik.system.NativeStart.main(Native Method)
जब आप इसे चलाते क्या हो रहा है? क्या आपको कोई त्रुटि मिल रही है या उदाहरण के लिए कुछ भी नहीं दिखा रहा है? –
ए ने त्रुटि लॉग के साथ पोस्ट संपादित किया, यह एक NullPointerException है। –