2015-04-27 3 views
2

Я делаю приложение для Android-плееров MP3. Я хочу запустить другое действие из клика ListView, который открывает каталог исполнителя, чтобы показывать песни от этого одного исполнителя. Я основывал свой код на [учебнике Android] [1].Подключение Android ListView onClick к другому действию

Это ниже в моем OnCreate в ArtistList.java

ListView lv = getListView(); 
    lv.setOnItemClickListener(new OnItemClickListener() { 

     public void onItemClick(AdapterView<?> parent, View v,int position, long id) { 

      Intent intent = new Intent(getApplicationContext(), SongList.class); 

      String artistSongPath = artistsList.get(position).get("artistPath");//gets artist SDcard path 

      System.out.println("artistSongPath = " + artistSongPath); //prints out correct path 

      intent.putExtra("A_S_PATH", artistSongPath); //puts the artistSongPath static A_S_Path 

      startActivity(intent); //start the intent 
     } 
    }); 

В верхней части моего ArtistList.java меня

public final static String A_S_PATH = "wecode.mp3playerapp.MESSAGE"; 

И в моем SongList.java

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.song_list); 

    Intent intent = getIntent(); 
    String path = intent.getStringExtra(ArtistList.A_S_PATH) + "/"; 
    System.out.println(path); 
    try { 
     File fp = new File(path); 
     findArtistSongs(fp); 
    }catch(NullPointerException npe){ 
     System.out.println("Could not find path."); 
    } 

} 

A_S_Path null, и я не попадаю в мой улов. Пожалуйста помоги! Это мое первое приложение!

ответ

0

Изменяйте эту

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.song_list); 

    Intent intent = getIntent(); 
    String path = intent.getStringExtra("A_S_PATH") + "/"; //here is the line that I changed 
    System.out.println(path); 
    try { 
     File fp = new File(path); 
     findArtistSongs(fp); 
    }catch(NullPointerException npe){ 
     System.out.println("Could not find path."); 
    } 
+0

Спасибо! Это фиксировало это. – Ella

+0

рад, что это помогает, будьте осторожны с этими тегами, они должны быть точно такими же –

0

В вашем ArtistList.java у вас есть:

intent.putExtra("A_S_PATH", artistSongPath); 

Но в SongList.java, у вас есть:

String path = intent.getStringExtra(ArtistList.A_S_PATH) + "/"; 

Вы заметили " A_S_PATH " отличается от ArtistList.A_S _PATH вы определили?

Смежные вопросы