Diskuze: Android Studio
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 8 zpráv z 8.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí Java, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj, keď už si si ich vyklikal v editori tak si môžeš v aktivite uložiť ich idčka do pola usporiadaného tak aby index prvku zodpovedal hodnote ktorú chceš po kliknutí vypísať a potom tým polom len preiterovať a nastaviť click listenery. Rovnako by si ich mohol v cykle dynamicky vytvoriť.
public class StartActivity extends Activity {
private static final int[] buttonsId = new int[]{R.id.button0, R.id.button1}; //... R.id.button9
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
for(int i = 0; i < buttonsId.length; i++){
Button button = findViewById(buttonsId[i]);
final int finalI = i;
button.setOnClickListener((View click) -> processInput(finalI));
}
}
private void processInput(int number){
//vypis hodnotu
//sprav matematicku operaciu
}
}
Dík, přesně to jsem potřeboval vědět.
Jo, akorát ještě s tou metodou. Když ji napíšu tam kde ji máš Ty, android Studio mi to hlásí že je očekáván středník.Teprve až když tu funkci posunu za tu jednu složenou závorku, přestane to hlásit chybu. Jakto ?
Pošli kód pri ktorom ti to hlási chybu
package ie.connect.dr_noodle_final;
import android.content.Intent;
import android.content.res.Resources;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Button;
import android.widget.ListView;
import android.widget.TextView;
import java.lang.ref.Reference;
import java.lang.reflect.Array;
import java.sql.RowId;
public class disease_menu extends AppCompatActivity {
String[] menu;
ListView list;
String [] info;
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
info = intent.getStringArrayExtra("name-of-disease.connect.ie");
Resources res = getResources();
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_disease_menu);
list = (ListView) findViewById(R.id.menu_view);
int itemNumber = intent.getIntExtra("name-of-disease.connect.ie", -1);
TextView nadpis = (TextView)findViewById(R.id.textView2);
nadpis.setText(info[0].toString().toUpperCase());
if (info[0].equals("diabetes")) {
switch (info[1]) {
case "0":
menu = res.getStringArray(R.array.diabetes_menu);
break;
case "1":
menu = res.getStringArray(R.array.diabetes_meditations);
break;
case "2":
menu = res.getStringArray(R.array.diabetes_complications);
break;
case "3":
menu = res.getStringArray(R.array.diabetes_services);
break;
}
}
else if (info[0].equals("cancer"))
{
switch (info[1]) {
case "0":
menu = res.getStringArray(R.array.cancer_menu);
break;
case "1":
menu = res.getStringArray(R.array.cancer_meditations);
break;
case "2":
menu = res.getStringArray(R.array.cancer_complications);
break;
case "3":
menu = res.getStringArray(R.array.cancer_services);
break;
}
}
else if (info[0].equals("cold"))
{
switch (info[1]) {
case "0":
menu = res.getStringArray(R.array.cold_menu);
break;
case "1":
menu = res.getStringArray(R.array.cold_meditations);
break;
case "2":
menu = res.getStringArray(R.array.cold_complications);
break;
case "3":
menu = res.getStringArray(R.array.cold_services);
break;
}
}
else
{
switch (info[1]) {
case "0":
menu = res.getStringArray(R.array.flu_menu);
break;
case "1":
menu = res.getStringArray(R.array.flu_meditations);
break;
case "2":
menu = res.getStringArray(R.array.flu_complications);
break;
case "3":
menu = res.getStringArray(R.array.flu_services);
break;
}
}
menu_items items = new menu_items(this, menu);
list.setAdapter(items);
// onclick events for buttons
Button btnMenu = findViewById(R.id.btn_menu);
btnMenu.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent openMenu = new Intent(getApplicationContext(),Start_screen.class);
startActivity(openMenu);
}
});
//_____________________________________________-
Button btnBack = findViewById(R.id.btn_back);
btnBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent back = new Intent(getApplicationContext(),about_disease.class);
startActivity(back);
}
});
final String disease = info[0];
ListView list = findViewById(R.id.menu_view);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Intent gotoArticle = new Intent(getApplicationContext(),Articles.class);
String [] array = {disease,i+"",info[1]};
gotoArticle.putExtra("item",array);
startActivity(gotoArticle);
}
});
public void Metoda(int a)
{
}
}
}
Neviem či som slepý ale nevidím, že by si tam mal ten for cyklus pre
nastavenie listenerov
Ak myslíš ten riadok public void Metoda(int a) tak tam píše že
očakáva bodkočiarku pretože je vo vnútri metódy onCreate. V tom
mojom kúsku kódu mám metódu processInput mimo metódy
onCreate.
Jo ten cyklus jsem tam ještě nedal ale dík za radu
Zobrazeno 8 zpráv z 8.