2015-06-19 64 views
-1

我有3個活動佈局。在第一個佈局中,我希望用戶輸入一個已顯示的數字(與captcha幾乎相同),並且也在第二個佈局中。接下來我想將結果傳遞給最後的佈局。如何在android中的不同文本視圖中傳遞數據意圖

這是我的代碼。

firstlayout:

EditText periksaAnsTxt = (EditText) findViewById(R.id.et); 
    int periksaAns = Integer.valueOf(periksaAnsTxt.getText().toString()); 
    Intent hasilIntent = new Intent(this, Soal2.class); 
    int hasilBNormal; 
    int hasilBTotal; 

    if (periksaAns == 12){ 
     hasilBNormal = 1; 
     hasilIntent.putExtra("hasilBNormal1",hasilBNormal); 
    }else { 
     hasilBTotal = 1; 
     hasilIntent.putExtra("hasilBTotal1", hasilBTotal); 
    } 
    startActivity(hasilIntent); 

第二:

EditText periksaAnsTxt = (EditText) findViewById(R.id.et); 

    int periksaAns = Integer.valueOf(periksaAnsTxt.getText().toString()); 
    Intent hasilIntent = new Intent(this, HasilActivity.class); 

    int hasilBNormal; 
    int hasilBMerahHijau; 
    int hasilBTotal; 


    if (periksaAns == 8){ 
     hasilBNormal = 1; 
     hasilIntent.putExtra("hasilBNormal2",hasilBNormal); 


    }else if (periksaAns == 3){ 
     hasilBMerahHijau = 1; 
     hasilIntent.putExtra("hasilBMerahHijau1", hasilBMerahHijau); 

    }else { 
     hasilBTotal = 1; 
     hasilIntent.putExtra("hasilTotal2", hasilBTotal); 
    } 
    startActivity(hasilIntent); 

和其示出了結果的佈局是:

Intent hasilIntent = getIntent(); 
    Integer hasilNormal1 = hasilIntent.getIntExtra("hasilBNormal1",1); 
    Integer hasilNormal2 = hasilIntent.getIntExtra("hasilBNormal2",1); 
    Integer hasilTotal1 = hasilIntent.getIntExtra("hasilBTotal1",1); 
    Integer hasilTotal2 = hasilIntent.getIntExtra("hasilBTotal2",1); 
    Integer hasilMerahHijau = hasilIntent.getIntExtra("hasilBMerahHijau1",1); 

    TextView hasilNormalView = (TextView) findViewById(R.id.txtNormal); 
    TextView hasilMerahHijauView = (TextView)findViewById(R.id.txtMerahHijau); 
    TextView hasilTotalView = (TextView) findViewById(R.id.txtTotal); 

    float bNormal = (hasilNormal1 + hasilNormal2)/2 *100; 
    String bNormalStr = String.valueOf(bNormal); 
    float bMerahHijau = hasilMerahHijau*100; 
    String bMerahHijauStr = String.valueOf(bMerahHijau); 

    float bTotal = (hasilTotal1 + hasilTotal2)/2*100; 
    String bTotalStr = String.valueOf(bTotal); 

    hasilNormalView.setText("Normal : " + bNormalStr + '%'); 
    hasilMerahHijauView.setText("Buta Warna Merah + Hijau : " + bMerahHijauStr + '%'); 
    hasilTotalView.setText("Buta Warna Total : " + bTotalStr + '%'); 

因此,如果他們在佈局1或8個輸入數字12佈局2,然後hasilBnormal是增加和其他不會增加(什麼都不做),但我在這裏的問題。如果hasilBNormal增加了其他人,請幫我解決這個問題。

這裏是第三佈局的xml:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/txtNormal" 
    android:layout_alignParentTop="true" 
    android:layout_alignParentLeft="true" 
    android:layout_marginTop="110dp" /> 


<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/txtMerahHijau" 
    android:layout_below="@+id/txtNormal" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:id="@+id/txtTotal" 
    android:layout_below="@+id/txtMerahHijau" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 
+0

ü使用默認值設爲1,所有變量。如果沒有值,則1存儲在這些變量中。 – Harish

+0

所以如果用戶提出正確答案,我該如何增加點數?例如,如果他們在佈局1中回答12,那麼hasilBnormal的點就是一點,但其他點不會。謝謝 – Melly

回答

0

我不完全什麼是你的代碼的目的,或變量的語義理解,但我相信你想設置的默認值0您getIntExtras

Integer hasilNormal1 = hasilIntent.getIntExtra("hasilBNormal1", 0); 
Integer hasilNormal2 = hasilIntent.getIntExtra("hasilBNormal2", 0); 
... 

而且,似乎你正在失去在第二活動第一意向的內容。

在你的第二個活動,你應該第一個意向書的內容複製到第二個意圖:

hasilIntent.putExtra("hasilBNormal1", getIntent().getIntExtra("hasilBNormal1", 0)); 
hasilIntent.putExtra("hasilBTotal1", getIntent().getIntExtra("hasilBTotal1", 0)); 
+0

感謝萌芽,它解決了我的問題。 – Melly

相關問題