当我单击录制列表时,它不会显示我在编码单击事件中写入的消息 package com.example.projectlayout; 导入java.io.File; 导入java.util.ArrayList; 导入android.media.MediaPla

当我单击录制列表时,它不会显示我在编码单击事件中写入的消息 package com.example.projectlayout; 导入java.io.File; 导入java.util.ArrayList; 导入android.media.MediaPla,android,Android,当我单击录制列表时,它不会显示我在编码单击事件中写入的消息 package com.example.projectlayout; 导入java.io.File; 导入java.util.ArrayList; 导入android.media.MediaPlayer; 导入android.os.Bundle; 导入android.app.Activity; 导入android.view.LayoutInflater; 导入android.view.Menu; 导入android.view.view;

当我单击录制列表时,它不会显示我在编码单击事件中写入的消息
package com.example.projectlayout;
导入java.io.File;
导入java.util.ArrayList;
导入android.media.MediaPlayer;
导入android.os.Bundle;
导入android.app.Activity;
导入android.view.LayoutInflater;
导入android.view.Menu;
导入android.view.view;
导入android.view.ViewGroup;
导入android.widget.AdapterView;
导入android.widget.AdapterView.OnItemClickListener;
导入android.widget.BaseAdapter;
导入android.widget.ListView;
导入android.widget.TextView;
导入android.widget.Toast;
公共类Showlist扩展活动{
ArrayList记录文件;
列表视图列表;
MediaPlayer mp=新的MediaPlayer();
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u showlist);
//从SD卡获取所有文件
recordedFiles=DataFetcher.getAllData();
//创建自定义适配器并在列表中插入数据
列表=(ListView)findViewById(R.id.listView1);
setAdapter(新的MyAdapter());
list.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3){
Toast.makeText(Showlist.this、position、,
Toast.LENGTH_LONG).show();
Toast.makeText(Showlist.this,recordedFiles.get(position.toString(),Toast.LENGTH_LONG.show();
playMyRecord(位置);
}
});
}
公共作废playMyRecord(int pos){
试一试{
//mp.reset();
setDataSource(recordedFiles.get(pos.getAbsolutePath());
mp.prepare();
mp.start();
}捕获(例外情况除外){
}
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.showlist,menu);
返回true;
}
公共类MyAdapter扩展了BaseAdapter{
@凌驾
public int getCount(){
//TODO自动生成的方法存根
返回recordedFiles.size();
}
@凌驾
公共对象getItem(int arg0){
//TODO自动生成的方法存根
返回null;
}
@凌驾
公共长getItemId(int arg0){
//TODO自动生成的方法存根
返回0;
}
@凌驾
公共视图getView(内部位置、视图视图、视图组视图组){
LayoutInflater充气机=getLayoutInflater();
如果(视图==null){
视图=充气机。充气(R.layout.custom,viewgroup,false);
}
文件f=recordedFiles.get(位置);
//view.findViewById(R.id.imageView1);
TextView title=(TextView)view.findViewById(R.id.textView2);
title.setText(f.getName());
TextView持续时间=(TextView)view.findViewById(R.id.textView1);
duration.setText(String.valueOf(f.length());
返回视图;
}
}
}

请学习如何在Stackoverflow上格式化您的代码。我为这篇文章做了这项工作。我想问题还不清楚。当我点击listitem时,它不会显示位置和路径。应用程序崩溃了吗?或者它只是不显示祝酒词?嗯,在第一次祝酒词中,您可能需要
字符串.valueOf(position)
“+position
,而不仅仅是
position
。如果它没有崩溃,那么你也有另一个问题。(也许)
package com.example.projectlayout;

import java.io.File;
import java.util.ArrayList;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.app.Activity;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class Showlist extends Activity {
  ArrayList<File> recordedFiles;
  ListView list;
  MediaPlayer mp = new MediaPlayer();

  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_showlist);

    // Get All Files from SdCard
    recordedFiles = DataFetcher.getAllData();

    // Create Custom Adapter And Insert data in the List
    list = (ListView) findViewById(R.id.listView1);
    list.setAdapter(new MyAdapter());
    list.setOnItemClickListener(new OnItemClickListener() {

      public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) {
        Toast.makeText(Showlist.this, position,
                       Toast.LENGTH_LONG).show();
        Toast.makeText(Showlist.this, recordedFiles.get(position).toString(), Toast.LENGTH_LONG).show();
        playMyRecord(position);
      }
    });
  }

  public void playMyRecord(int pos) {
    try {
      //mp.reset();
      mp.setDataSource(recordedFiles.get(pos).getAbsolutePath());
      mp.prepare();
      mp.start();
    } catch (Exception ex) {
    }
  }

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.showlist, menu);
    return true;
  }

  public class MyAdapter extends BaseAdapter {
    @Override
    public int getCount() {
      // TODO Auto-generated method stub
      return recordedFiles.size();
    }

    @Override
    public Object getItem(int arg0) {
      // TODO Auto-generated method stub
      return null;
    }

    @Override
    public long getItemId(int arg0) {
      // TODO Auto-generated method stub
      return 0;
    }

    @Override
    public View getView(int position, View view, ViewGroup viewgroup) {
      LayoutInflater inflater = getLayoutInflater();

      if (view == null) {
        view = inflater.inflate(R.layout.custom, viewgroup, false);
      }

      File f = recordedFiles.get(position);

      //view.findViewById(R.id.imageView1);
      TextView title = (TextView) view.findViewById(R.id.textView2);
      title.setText(f.getName());
      TextView duration = (TextView) view.findViewById(R.id.textView1);
      duration.setText(String.valueOf(f.length()));

      return view;
    }
  }
}