у меня есть этот фрагмент, который является частью действия с вкладками:
TranslateFragment. java
import android.content.Context;
import android.content.Intent;
import android.database.DataSetObserver;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Adapter;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
import androidx.fragment.app.Fragment;
import java.util.ArrayList;
public class TranslateFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.word_list, container, false);
super.onCreate(savedInstanceState);
View view= inflater.inflate(R.layout.fragment_translate, container, false);
Button numere =(Button) view.findViewById(R.id.numbers);
// numere.setOnClickListener(new View.OnClickListener(){
// @Override
// public void onClick(View v)
// {
// Intent intent= new Intent(getActivity(), NumbersActivity.class);
//
// startActivity(intent);
//
// }
// });
//// Numbers- Start
// TextView numbers = (TextView) getView().findViewById(R.id.numbers);
// numbers.setOnClickListener(new View.OnClickListener(){
// @Override
// public void onClick(View view){
// Intent i= new Intent(getActivity(), NumbersActivity.class);
//
// startActivity(i);
// }
// });
//
// numbers.setOnLongClickListener(new View.OnLongClickListener() {
// @Override
// public boolean onLongClick(View v) {
// Toast.makeText(v.getContext(), "Open the list of numbers", Toast.LENGTH_LONG).show();
// return false;
// }
// });
//
// //Numbers- Finish
return view;
}
}
Это часть всей деятельности , но сейчас мне нужно только связать эту кнопку
А вот действие, которого я пытаюсь достичь:
package com.example.touristguidebrasov;
import android.content.Context;
import android.media.AudioManager;
import android.media.MediaPlayer;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
import java.util.ArrayList;
public class NumbersActivity extends AppCompatActivity {
MediaPlayer msound;
private AudioManager mAudioManager;
AudioManager.OnAudioFocusChangeListener listener= new AudioManager.OnAudioFocusChangeListener() {
@Override
public void onAudioFocusChange(int focusChange) {
if(focusChange == AudioManager.AUDIOFOCUS_GAIN ){
msound.start();
}
else
if (focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT || focusChange == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK){
msound.pause();
msound.seekTo(0);
}
else
if (focusChange == AudioManager.AUDIOFOCUS_LOSS)
{releaseMediaPlayer();}
}
};
private MediaPlayer.OnCompletionListener mCompletionListener = new MediaPlayer.OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mediaPlayer) {
// Now that the sound file has finished playing, release the media player resources.
releaseMediaPlayer();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.word_list);
mAudioManager= (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//Create an array
final ArrayList<Word> numbers= new ArrayList<Word>();
numbers.add(new Word("Zero", "Zero", R.mipmap.number_0, R.raw.zero));
numbers.add(new Word("Unu", "One", R.mipmap.number_1, R.raw.unu));
numbers.add(new Word("Doi", "Two", R.mipmap.number_2, R.raw.doi));
numbers.add(new Word("Trei", "Three", R.mipmap.number_3, R.raw.trei));
numbers.add(new Word("Patru", "Four",R.mipmap.number_4, R.raw.patru));
numbers.add(new Word("Cinci","Five",R.mipmap.number_5, R.raw.cinci));
numbers.add(new Word("Șase", "Six",R.mipmap.number_6, R.raw.sase));
numbers.add(new Word("Șapte","Seven",R.mipmap.number_7, R.raw.sapte));
numbers.add(new Word("Opt", "Eight",R.mipmap.number_8, R.raw.opt));
numbers.add(new Word("Nouă", "Nine",R.mipmap.number_9, R.raw.noua));
numbers.add(new Word("Zece", "Ten",R.mipmap.number_10, R.raw.zece));
numbers.add(new Word("Douăzeci", "Twenty",R.mipmap.number_20, R.raw.douazeci));
numbers.add(new Word("Treizeci", "Thirty",R.mipmap.number_30, R.raw.treizeci));
numbers.add(new Word("Patruzeci", "Forty",R.mipmap.number_40, R.raw.patruzeci));
numbers.add(new Word("Cincizeci", "Fifty",R.mipmap.number_50, R.raw.cincizeci));
numbers.add(new Word("Șaizeci", "Sixty",R.mipmap.number_60, R.raw.saizeci));
numbers.add(new Word("Șaptezeci", "Seventy",R.mipmap.number_70, R.raw.saptezeci));
numbers.add(new Word("Optzeci", "Eighty",R.mipmap.number_80, R.raw.optzeci));
numbers.add(new Word("Nouăzeci", "Ninety",R.mipmap.number_90, R.raw.nouazeci));
numbers.add(new Word("O sută", "One hundred",R.mipmap.number_100, R.raw.osuta));
WordAdapter itemsAdapter = new WordAdapter(this, numbers);
ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(itemsAdapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
releaseMediaPlayer();
Toast.makeText(getBaseContext(), "Sound on!",Toast.LENGTH_SHORT ).show();
Word word= numbers.get(position);
releaseMediaPlayer();
int result= mAudioManager.requestAudioFocus(listener, AudioManager.STREAM_MUSIC, AudioManager.AUDIOFOCUS_GAIN_TRANSIENT);
if(result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
msound = MediaPlayer.create(getBaseContext(), word.getAudio_Resource_id());
msound.start();
msound.setOnCompletionListener(mCompletionListener);
}
}
});
}
@Override
protected void onStop() {
super.onStop();
releaseMediaPlayer();
}
private void releaseMediaPlayer() {
// If the media player is not null, then it may be currently playing a sound.
if (msound != null) {
// Regardless of the current state of the media player, release its resources
// because we no longer need it.
msound.release();
// Set the media player back to null. For our code, we've decided that
// setting the media player to null is an easy way to tell that the media player
// is not configured to play an audio file at the moment.
msound = null;
mAudioManager.abandonAudioFocus(listener);
}
}
}
Это действие взято из моего старого приложения, которое Я построил после курса Google, и он работает нормально. Моя единственная проблема - связать фрагмент и активность. Я перепробовал каждый урок и не нашел решения. Я хочу сделать что-то похожее на то, что делает WhatsApp, когда вы нажимаете на разговор. Спасибо! :)