|
Hi,
I have a list view, in that i am adding image view and audio view like whats-app. When ever i add a item to the list view list adapter GetView is calling and total list is refreshing. While i am playing audio if any item add to the list, list is refreshing and audio view is also refreshing but audio is still playing.
Can any one give a suggestion to solve refreshing List view items...?
thanks in advance.
|
|
|
|
|
Audio is playing, because the background service is still active. To stop the audio, you would need the instance that is currently "playing", and to stop refreshing, you would need to remove the "UpdateList" handlers.
Both of which, I assume, you don't want to do. So, do this. Instead of stopping the update or refreshing of the list. Hold a reference to the "audio view". Either that, or while refreshing the list check which of the audio is currently in playing mode. Then, change the state of that item and leave the others as they should be.
This would require you to have:
- Static field, to hold the reference.
- Either as a media name, or the instance and so on.
- Handler to update the list.
- Code to check which media item needs to be in "playing" mode once list is rendered again.
You forgot to share the code, it would still be better to share some code blocks so that we can practically help you out.
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
thank you so much for your reply, let me do this.
|
|
|
|
|
this is my code:
public override View GetView(int position, View convertView, ViewGroup parent)
{
audioId = _messageList[position].Id;
view = inflater.Inflate(Resource.Layout.MessageAudio, parent, false);
ivPlay = view.FindViewById(Resource.Id.ivPlay);
ivPause = view.FindViewById(Resource.Id.ivPause);
seekbar = view.FindViewById(Resource.Id.seekbar);
seekbar.Tag = position;
seekbar.SetOnSeekBarChangeListener(this);
ivPlay.Click += (sender, e) =>
{
playingAudioId = audioId;
playPosition = (int)((ImageView)sender).Tag;
if (ivPlay.Visibility != ViewStates.Visible)
{
player.Pause ();
ivPlay.Visibility = ViewStates.Visible;
ivPause.Visibility = ViewStates.Gone;
}
int startval = msglistview.FirstVisiblePosition;
for (int i = startval, j = msglistview.LastVisiblePosition; i <= j; i++)
{
if (audioId == GetConversationItem (i).Id)
{
view = msglistview.GetChildAt (i - startval);
if (view != null)
{
playChronometer = view.FindViewById (Resource.Id.playChronometer);
ivPause = view.FindViewById (Resource.Id.ivPause);
ivPlay = view.FindViewById (Resource.Id.ivPlay);
seekbar = view.FindViewById (Resource.Id.seekbar);
PlayAudio(audioPath, seekbar.Progress);
ivPause.Visibility = ViewStates.Visible;
ivPlay.Visibility = ViewStates.Gone;
}
}
}
};
public void PlayAudio(string path, int duration)
{
try {
if (path != null && System.IO.File.Exists(path)) {
player = new MediaPlayer ();
if (duration == 0) {
player.SetDataSource (path);
player.Prepare ();
length = player.Duration;
TimeSpan tm = TimeSpan.FromMilliseconds (length);
string fromTimeString = tm.ToString ("mm':'ss");
time = fromTimeString;
run.Run ();
player.Start ();
} catch (System.Exception ex) {
Console.WriteLine("Exception at playing audio:" + ex.Message);
}
}
return view;
}
public void Run ()
{
seekUpdation ();
}
public void seekUpdation()
{
try
{ seekbar.Progress = player.CurrentPosition;
playingSeekDuration = player.CurrentPosition;
seekHandler.PostDelayed(run, 100);
seekbar.Max = player.Duration;
var fileduartion = seekbar.Progress;
TimeSpan result = TimeSpan.FromMilliseconds(fileduartion);
string timeString = result.ToString("mm':'ss");
playChronometer.Text = timeString;
}
catch(System.Exception e)
{
Console.WriteLine (e);
}
}
|
|
|
|
|
After adding an item, are you calling the adapter's notifyDataSetChanged() method?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
yes im caling notifyDataSetChanged() method
|
|
|
|
|
conversationadapter = new ConversationAdapter(this, selectedUserChat,msglistView );
msglistView.Adapter = conversationadapter;
conversationadapter.NotifyDataSetChanged();
|
|
|
|
|
|
Hello,
I am self learner of android programming. i am using android fragments with REST API's and WEB Services. every thing is working fine till now. i am facing a issue when user click on back press of HARDWARE. i am getting confused in it.. when i am using back-stack then the issue is it will take me back but the title or fragments activity not changed as i am doing dynamically.
second thing.. some times its take me in correct way but event data of that activity also not loading..
Please help me.. if any sample stuff provide me in this then it would be a great thing for me.
|
|
|
|
|
I have deleted your duplicate of this question.
|
|
|
|
|
Gourav Gupta wrote: ...back press of HARDWARE. Are you referring to the Up button in your app's action bar, or the system's Back button?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
|
How is this related to FIFO or LIFO? The back buttons can be somehow confusing, as hardware and logical buttons have a different effect on the transition.
- Logical back would take you to the parent activity.
- Hardware back would take you to the currently previous activity.
So, it would be worth handling both of them in your code. Then loading the activity, with the previous state or from ground up. Read the following two guides to learn more about "proper navigation":
- Providing Proper Back Navigation | Android Developers[^]
- Handling Back Button Press in an Activity Called For Result[^]
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
I want to draw horizontal dashed lines programmatically between programmatically generated TextViews. I found this code on Internet:
Paint fgPaintSel = new Paint();
fgPaintSel.setARGB(255, 0, 0, 0);
fgPaintSel.setStyle(Paint.Style.STROKE);
fgPaintSel.setPathEffect(new DashPathEffect(new float[]{5, 10}, 0));
I just copied and pasted this code but nothing happened. What should I do to draw a dashed line? Thanks.
|
|
|
|
|
jasonalien wrote:
I just copied and pasted this code... Where to?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
You need to add the code to do the actual drawing of the line. It would be better to study the documentation[^] rather than copying code from random places on the internet.
|
|
|
|
|
How to access the file system (SD Card files) of Master device to client devices for file accessing via bluetooth like Bluetooth file transfer application in play store?
please help
|
|
|
|
|
It had been a negative response until now, and it will be a no unless you start something yourself!
Start here and read the documentation, then learn how to use the protocols to work with Bluetooth connections and devices, http://developer.android.com/guide/topics/connectivity/bluetooth.html[^]
The sh*t I complain about
It's like there ain't a cloud in the sky and it's raining out - Eminem
~! Firewall !~
|
|
|
|
|
Member 12208230 wrote: How to access the file system (SD Card files)... Check out the Environment class.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Need code to send message to paired device from master device via bluetooth?
will you please help
|
|
|
|
|
Something like:
BluetoothSocket btSocket;
...
OutputStream outStream = btSocket.getOutputStream();
outStream.write("message");
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
how to stream audio/video file between android devices via bluetooth and master device have the control to stop,pause or resume the video it should be reflected in client devices
|
|
|
|
|
Have you looked into BluetoothAdapter and BluetoothSocket ?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Android Studio not working config path error, tried editing the codes idea.properties in the user files it wont work
|
|
|
|
|
Member 12187790 wrote: it wont work That is like telephoning the garage and saying "my car doesn't go".
|
|
|
|