با سلام.خیلی ممنونم از جواب کاملی که دادین.یک مشکل:اکتیویتی اصلی من یک لیست ویو هست ولی اکتیویتی صوت من یک لیست ویو نیست که بدین صورت [font] [/font] mp=MediaPlayer.create(getApplicationContext(), music[position]); مقدار را دریافت کنم.
کد اکتیویتی صوت:
کد اکتیویتی اصلی لیست ویو:
کد اکتیویتی صوت:
کد پیاچپی:
package com.kelidetan.customlistview;
import android.app.Activity;
import android.content.Context;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.SeekBar;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;
public class Sotactivity extends Activity implements OnClickListener {
SeekBar seek_bar;
Button play_button, pause_button;
MediaPlayer mediaPlayer;
TextView text_shown;
Handler seekHandler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sot);
Bundle extras = getIntent().getExtras();
if (extras != null) {
String my_key_number = extras.getString("key_number");
String my_message = "you pressed the item number " + my_key_number + " in ListView";
TextView tv = (TextView) findViewById(R.id.textView1);
tv.setText(my_message);
}
getInit();
seekUpdation();
}
public void getInit() {
seek_bar = (SeekBar) findViewById(R.id.seek_bar);
play_button = (Button) findViewById(R.id.play_button);
pause_button = (Button) findViewById(R.id.pause_button);
text_shown = (TextView) findViewById(R.id.text_shown);
play_button.setOnClickListener(this);
pause_button.setOnClickListener(this);
mediaPlayer = MediaPlayer.create(this, R.raw.asd);
seek_bar.setMax(mediaPlayer.getDuration());
}
Runnable run = new Runnable() {
@Override
public void run() {
seekUpdation();
}
};
public void seekUpdation() {
seek_bar.setProgress(mediaPlayer.getCurrentPosition());
seekHandler.postDelayed(run, 1000);
seek_bar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {
@Override
public void onStopTrackingTouch(SeekBar seek_bar) {
// TODO Auto-generated method stub
}
@Override
public void onStartTrackingTouch(SeekBar seek_bar) {
// TODO Auto-generated method stub
}
@Override
public void onProgressChanged(SeekBar seek_bar, int progress, boolean fromUser) {
if(fromUser){
mediaPlayer.seekTo(progress);
seek_bar.setProgress(progress);
}
}
});
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.play_button:
text_shown.setText("Playing...");
mediaPlayer.start();
break;
case R.id.pause_button:
mediaPlayer.pause();
text_shown.setText("Paused...");
}
}
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(fromUser){
mediaPlayer.seekTo(progress);
seekBar.setProgress(progress);
}
}
@Override
public void onBackPressed() {
mediaPlayer.stop();
finish();
}
}
کد اکتیویتی اصلی لیست ویو:
کد پیاچپی:
package com.kelidetan.customlistview;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.os.Handler;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SeekBar;
import android.widget.TextView;
import android.widget.Toast;
public class MainActivity extends ListActivity {
MediaPlayer mediaPlayer;
SeekBar seek_bar;
Button play_button, pause_button;
Handler seekHandler = new Handler();
public ListView lv;
int [] music={R.raw.abc,R.raw.asd,R.raw.asx,R.raw.my_file};
public String number_of_keys;
public String[] my_items = {"key_1",
"key_2",
"key_3",
"key_4",
"key_5",
"key_6",
"key_7",
"key_8",
"key_9",
"key_10",
"key_11",
"key_12",
"key_13",
"key_14",
"key_15",
"key_16",
"key_17",
"key_18",
"key_19",
"key_20"
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
setListAdapter(new MyAdapter(this,
android.R.layout.simple_list_item_1,
R.id.textView1,
my_items));
lv = getListView();
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, final View view,
int position, long id) {
Intent i = new Intent(getApplicationContext(), Sotactivity.class);
number_of_keys = String.valueOf(position+1);
i.putExtra("key_number", number_of_keys);
i.putExtra("position", position);
startActivity(i);
}
});
}
private class MyAdapter extends ArrayAdapter<String>{
public MyAdapter(Context context, int resource, int textViewResourceId,
String[] strings) {
super(context, resource, textViewResourceId, strings);
// TODO Auto-generated constructor stub
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View row = inflater.inflate(R.layout.list_item, parent, false);
String stringName = "string_key_" + String.valueOf(position+1);
int string_res_ID = getResources().getIdentifier(stringName,"string",getPackageName());
String my_string = getResources().getString(string_res_ID);
TextView tv = (TextView) row.findViewById(R.id.textView1);
tv.setText(my_string);
String imageName = "key_" + String.valueOf(position+1);
int image_res_ID = getResources().getIdentifier(imageName,"drawable",getPackageName());
ImageView iv = (ImageView) row.findViewById(R.id.imageView1);
iv.setImageResource(image_res_ID);
return row;
}
}
}