Как я могу создать динамические переменные в функции, используя параметр функции?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как я могу создать динамические переменные в функции, используя параметр функции?

Сообщение Anonymous »

Я создал это приложение полностью функциональным как веб-приложение (js). Пришло время конвертировать в Java. мое понимание Java минимально, поэтому, пожалуйста, объясните ответы, как если бы вы пятиклассник;). Прикоснитесь к функции myfunction, затем к прослушивателю щелчков abutton2. Затем посмотрите на все вызовы медиаплеера. Дилемма очевидна. Без радикальных изменений я хотел бы научиться заменять все создаваемые переменные медиаплеера (внутри функции), используя первый параметр в myFunction. поэтому «a» создаст медиаплеер как, медиаплеер aw1, медиаплеер aw2 и т. д. и соответственно вызовет R.raw.a, R.raw.aw1, R.raw.aw2 соответственно.
Это также поможет устранить все остальные параметры я установил так, чтобы третий и четвертый параметры могли создаваться динамически, чтобы «a» также создавало bpage и bs. конечно, буква b будет создаваться динамически при переходе к следующему символу алфавита. теперь внутри myFunction rightsound.start() будет заменен на ar.start, который создается динамически с помощью строкового параметра "a".

Код: Выделить всё

public class StartActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.startpage);

Button startbutton = findViewById(R.id.StartButton);

ImageView aimg = findViewById(R.id.Aimg);
Button abutton1 = findViewById(R.id.AButton1);
Button abutton2 = findViewById(R.id.AButton2);
Button abutton3 = findViewById(R.id.AButton3);

ImageView bimg = findViewById(R.id.Bimg);
Button bbutton1 = findViewById(R.id.BButton1);
Button bbutton2 = findViewById(R.id.BButton2);
Button bbutton3 = findViewById(R.id.BButton3);

RelativeLayout startpage = findViewById(R.id.StartContainer);
LinearLayout apage = findViewById(R.id.AContainer);
LinearLayout bpage = findViewById(R.id.BContainer);

MediaPlayer as = MediaPlayer.create(getApplicationContext(),R.raw.a);
MediaPlayer aw1 = MediaPlayer.create(getApplicationContext(),R.raw.aw1);
MediaPlayer aw2 = MediaPlayer.create(getApplicationContext(),R.raw.aw2);
MediaPlayer ar = MediaPlayer.create(getApplicationContext(),R.raw.ar);

MediaPlayer bs = MediaPlayer.create(getApplicationContext(),R.raw.b);
MediaPlayer bw1 = MediaPlayer.create(getApplicationContext(),R.raw.bw1);
MediaPlayer bw2 = MediaPlayer.create(getApplicationContext(),R.raw.bw2);
MediaPlayer br = MediaPlayer.create(getApplicationContext(),R.raw.br);

aimg.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
as.start();
}
});
abutton1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
aw1.start();
}
});
abutton2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
myFunction("a", ar, apage, bpage, bs);
}
});
abutton3.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
aw2.start();
}
});

bimg.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
bs.start();
}
});
bbutton1.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
bw1.start();
}
});
bbutton2.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
bw2.start();
}
});
bbutton3.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
br.start();
}
});

startbutton.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v){
startpage.setVisibility(View.INVISIBLE);
apage.setVisibility(View.VISIBLE);
as.start();
}
});

ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.main), (v, insets) ->  {
Insets systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars());
v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom);
return insets;
});

}
public void myFunction(String alphabet, MediaPlayer rightsound, LinearLayout pagehide, LinearLayout pageshow, MediaPlayer nextsound){
rightsound.start();
new android.os.Handler(Looper.getMainLooper()).postDelayed(
new Runnable() {
public void run() {
pagehide.setVisibility(View.INVISIBLE);
pageshow.setVisibility(View.VISIBLE);
nextsound.start();
}
},
5000);
}
}
поэтому, если это веб-разработка, строка будет просто добавлена ​​в статический код
${param}r.start();
${param}page. setVisibility(View.Visible);
какой эквивалент здесь в Java?

Подробнее здесь: https://stackoverflow.com/questions/784 ... -parameter
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»