Behöver hjälp med Android App Programmering (Eclipse)

Permalänk

Behöver hjälp med Android App Programmering (Eclipse)

Hej :)!

Jag har fått en uppgift av min lärare att skapa en simpel android app tills idag men har stött på ett problem som jag inte kan lösa. Den app jag försöker programmera är en simpel Golf-handicaps räknare. Jag använder mig av 2st views, alltså två formulär, jag byter mellan dem med en activity som är kopplad till en "Next" knapp efter man fyllt i det data man behöver i första formuläret. Har en addera och subtrahera knapp som går upp till 5 där man väljer antalet rundor och beroende på vilket nummer det är så ska den andra viewn visa X antal EditTexts (De är satta till gone, beroende på vilket värde 1-5 så sätts visibility på 0 (alltså synlig). Felet blir att de inte blir synliga och att min "calculate" knapp som jag lagt till på den andra viewn inte ens visas. Ursäka för wall of text. Om jag saknar någon information var vänlig att bara be om den:). Postar kod nedanför:

package markus.second.nv10; (FÖRSTA FORMULÄRET) import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.content.Intent; public class MarkusSecondActivity extends Activity { /** Called when the activity is first created. */ int counter; Button add, sub; TextView display; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); counter = 0; add = (Button) findViewById(R.id.bAdd); sub = (Button) findViewById(R.id.bSub); display = (TextView) findViewById(R.id.tvdiplay); add.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub counter++; display.setText("Antal rundor: " + counter); if(counter>4){ counter=0; } } }); sub.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { // TODO Auto-generated method stub counter--; if (counter == -1) counter = 0; display.setText("Antal rundor: " + counter); } }); Button bNext = (Button) findViewById(R.id.bNext); bNext.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { Intent intent = new Intent(v.getContext(), multiview.class); startActivityForResult(intent, 0); Bundle basket = new Bundle(); basket.putInt("key",counter); Intent a = new Intent(MarkusSecondActivity.this, multiview.class); a.putExtras(basket); startActivity(a); } }); } }

package markus.second.nv10; ANDRA FORMULÄRET import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; public class multiview extends Activity { public void OnCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); Button button1 = (Button) findViewById(R.id.button1); EditText et1 = (EditText) findViewById(R.id.editText1); EditText et2 = (EditText) findViewById(R.id.editText2); EditText et3 = (EditText) findViewById(R.id.editText3); EditText et4 = (EditText) findViewById(R.id.editText4); Bundle gotBasket = getIntent().getExtras(); int gotBread = gotBasket.getInt("key"); if(gotBread>=1) et1.setVisibility(0); if(gotBread>=2) et1.setVisibility(0); et2.setVisibility(0); if (gotBread>=3) et1.setVisibility(0); et2.setVisibility(0); et3.setVisibility(0); if (gotBread>=4) et1.setVisibility(0); et2.setVisibility(0); et3.setVisibility(0); et4.setVisibility(0);

Permalänk
Medlem

Nu är jag inte särskilt Java-erfaren, än mindre Android-Java, men det ser ut att fattas lite av den andra filen. Skulle du kunna lägga till det? Sen, tänk på att du måste använda { } om en if-sats omfattar mer än en (1) rad. (tror jag?) Kanske det som är ett problem någonstans.

Visa signatur

AMD Ryzen 7 5800X | 32 GB Corsair Vengeance 3200 MHz | ASUS TUF Geforce RTX 3080

Permalänk

Tack för att du svarade! Nu är det så att jag inte har kommit längre i mitt program. Jag provkörde det på en emulator och när jag märkte att det inte fungerade som det skulle slutade jag med kodningen och försökte leta upp problemet. Den bit jag har skrivit bör fortfarande fungera oavsett om jag har skrivit färdigt hela programmet eller inte :D. Jag är riktigt dålig på att uttrycka mig i text märker jag :/. Ska ta en titt på det där med If-satser som du nämnde dock

Permalänk

Gjorde ingen skillnad utan då startar programmet inte ens :/ mer idéer?

Permalänk
Medlem

Hmm, är du säker på att det var all kod du hade? För det borde inte ha fungerat, då du inte har stängt varken public class multiview eller public void onCreate. Såvida inte det läggs till automatiskt på nåt sätt, men det har jag svårt att tro.

Visa signatur

AMD Ryzen 7 5800X | 32 GB Corsair Vengeance 3200 MHz | ASUS TUF Geforce RTX 3080

Permalänk
Medlem

under förutsättningen att du faktiskt har din int (prova o köra en print på den för att se att den finns) så prova att köra invalidate på dina views som ska visas

Så först sätter du visibility sen efter det kör du invalidate vilket tvingar den att ritas om.

*edit* view.invalidate() har jag för mig bara fungerar från ui tråden, försöker du göra detta från en annan tråd tror jag du måste köra postinvalidate.

Permalänk

Tack igen för era förslag, jag ska försöka mig på det ni rekommenderat:)