【问题标题】:Connecting an Android ListView onClick to another Activity将 Android ListView onClick 连接到另一个 Activity
【发布时间】:2015-04-27 00:41:07
【问题描述】:

我正在制作一个 MP3 播放器 Android 应用程序。我想从 ListView 单击开始另一个活动,该活动打开艺术家目录以显示该艺术家的歌曲。我的代码基于 [Android 教程][1]。

下面是我在 ArtistList.java 中的 onCreate

    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 为空,我没有抓住。请帮忙!这是我的第一个应用程序!!

【问题讨论】:

    标签: android android-activity mp3 android-sdcard onitemclick


    【解决方案1】:

    改一下

        @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.");
        }
    

    【讨论】:

    • 很高兴它有帮助,小心那些标签,它们必须完全相同
    【解决方案2】:

    在您的 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 不同?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-18
      • 2017-04-05
      • 2018-12-25
      • 1970-01-01
      • 1970-01-01
      • 2017-05-20
      • 1970-01-01
      相关资源
      最近更新 更多