2016-07-30 7 views
0

私は音楽プレーヤーアプリを開発しようとしています。リストビュー項目はAPI 19ではクリックされず、上位APIをクリックします

まず、私はリストビューから音楽を選択しています。選択した音楽を含む音楽再生画面が開きます。同時に通知が表示されます。どこにいても、通知をクリックすると、現在の音楽で音楽プレーヤー画面が開きます。そして、あなたが望むなら、戻るボタンを押して音楽リストに行くことができます。

API 19;音楽再生画面に戻って戻るボタンを押すと音楽リストが表示されますが、項目はクリックされていません。しかし、より高いAPIは問題ありません。

唯一の問題です。 API19の通知パネルから届きました。

私はこの問題を理解できませんでした。 Music List onCreateメソッドは以下の通りです。

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.showmusicfiles); 

    filesFound=(ListView)findViewById(R.id.files_found); 
    items = new ArrayList<FileItem>(); 

    context = getApplicationContext(); 

    String path = Environment.getExternalStorageDirectory() + 
      File.separator + "MusicApp"+File.separator+"mp3"; 
    File f = new File(path); 
    final File fileList[] = f.listFiles(); 
    for (File file : f.listFiles()) { 

     FileItem item=new FileItem(); 
     item.setDescription(file.getName()); 
     item.setFullPath(file.getAbsolutePath()); 
     items.add(item); 
    } 

    searchResults=sortByDate(items); 

    adapter = new ArrayAdapter<FileItem>(getApplicationContext(), R.layout.music_file_item, searchResults){ 
     @Override 
     public View getView(final int position, View convertView, ViewGroup parent) { 
      if(convertView == null){ 
       convertView = getLayoutInflater().inflate(R.layout.music_file_item, parent, false); 
      } 

      TextView description = (TextView)convertView.findViewById(R.id.file_description); 

      final FileItem searchResult = searchResults.get(position); 
      description.setText(searchResult.getDescription().replace(".mp3","")); 

      convertView.setOnLongClickListener(new View.OnLongClickListener() { 
       @Override 
       public boolean onLongClick(View v) { 
        DialogInterface.OnClickListener dialogClickListener = new DialogInterface.OnClickListener() { 
         @Override 
         public void onClick(DialogInterface dialog, int which) { 
          switch (which){ 
           case DialogInterface.BUTTON_POSITIVE: 
            deleteFileFromList(searchResults.get(position).getFullPath(),position); 
            break; 

           case DialogInterface.BUTTON_NEGATIVE: 
            toast("yoh dedın"); 
            break; 
          } 
         } 
        }; 

        AlertDialog.Builder builder = new AlertDialog.Builder(ShowMusicFiles.this); 
        builder.setMessage("Are you sure you want to delete").setPositiveButton("Yes", dialogClickListener) 
          .setNegativeButton("No", dialogClickListener).show(); 


        return true; 
       } 
      }); 



      convertView.setOnClickListener(new View.OnClickListener(){ 
       @Override 
       public void onClick(View v){ 
        FileTypeList = new ArrayList<File>(); 
        FileTypeList = FileItemToFile(searchResults); 
        DescriptionList= new ArrayList<String>(); 
        DescriptionList = getDescriptionList(searchResults); 

        playerIntent = new Intent(context, MusicPlayer.class); 
        playerIntent.putExtra("songPosition",position); 
        playerIntent.putExtra("songList",FileTypeList); 
        playerIntent.putExtra("descriptionList",DescriptionList); 
        playerIntent.putExtra("fromWhere","musicList"); 

        playerIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
        context.startActivity(playerIntent); 
       } 
      }); 
      return convertView; 
     } 
    }; 

    filesFound.setAdapter(adapter); 

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 

    DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout); 
    final ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar, R.string.navigation_drawer_open, R.string.navigation_drawer_close); 
    drawer.setDrawerListener(toggle); 
    toggle.syncState(); 

    NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view_music); 
    navigationView.setNavigationItemSelectedListener(this); 
} 

音楽再生画面の私のバックプレス方法は、音楽リストページに行く意図だけが含まれています。だから私は音楽演奏コードに書き込む必要があるとは思わない。

ありがとうございました。

@Override 
public void onBackPressed() { 
    Intent goToMusicList = new Intent(MusicPlayer.this,ShowMusicFiles.class); 
    startActivity(goToMusicList); 
} 
+0

R.layout.music_file_itemでandroid:clickable = "true"を使用してみましたか?またはconvertView.setClickable(true)? – geecko

+0

レイアウトファイルでは、クリック可能が既に追加されています。フォームJavaコードも試しましたが、うまくいきませんでした。 – Arif

答えて

0

filesFound.setAdapter(adapter)前にコールfilesFOund.invalidate()。それでも問題が解決しない場合は、ShowMusicFilesアクティビティのlaunchModeをsingleTopに設定してみてください。

+0

両方の2つは働いていません:( – Arif

関連する問題