当我单击录制列表时,它不会显示我在编码单击事件中写入的消息 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;
}
}
}