2016-03-27 8 views
0

ボタンをクリックして特定の情報を表示できるアプリがあります。次に、戻るボタンをクリックし、ボタンBをクリックして、別の情報を表示します。 Drinks.javaファイルにTest TextViewをコード化して、何が渡されているかを確認してプロセスを開始します。現在のところ、私が最初に押すボタンはどれも変数に固執しています。たとえば、ボタンAを押した後、戻る矢印を押してボタンBを押すと、ボタンAがまだtextViewに表示されています。私はクリックリスナーの中でStringsを空にしてみましたが、それは "消去してください"が、動作していません。変数にあるものを一掃して他のものを再割り当てする方法はありますか?それとも私の問題は他のところにあるの?Androidバックボタンをクリックすると変数が消去されます

Bar.java

import android.app.Activity; 
import android.content.Context; 
import android.content.Intent; 
import android.os.Bundle; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.TextView; 

public class Bar extends Activity{ 
    String setBarTest = MainActivity.setBar; 
    String barNameHolder, picHolder, barContactHolder, barPhoneHolder; 
    int imageInt, textInt1,textInt2, textInt3; 
    TextView setBarName, setBarContact,setBarPhone; 
    ImageView barPic; 
    Button viewAll, beer, wine, mixedDrinks, other, getTaxi; 
    static String setDrinkType = ""; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_bar); 

     Button viewAll = (Button)findViewById(R.id.btnviewAll); 
     Button beer = (Button)findViewById(R.id.btnBeer); 
     Button wine = (Button)findViewById(R.id.btnWine); 
     Button mixedDrinks = (Button)findViewById(R.id.btnMixedDrinks); 
     Button other = (Button)findViewById(R.id.btnOther); 
     Button getTaxi = (Button)findViewById(R.id.btnTaxi); 

     barPic = (ImageView) findViewById(R.id.barPic); 
     String picHolder = "drawable/"+setBarTest;  
     int imageInt = getResources().getIdentifier(picHolder, null, getPackageName()); 
     barPic.setImageResource(imageInt); 

     setBarName = (TextView)findViewById(R.id.barName); 
     String barNameHolder = "@string/"+setBarTest; 
     int textInt1 = getResources().getIdentifier(barNameHolder, null, getPackageName()); 
     setBarName.setText(textInt1); 

     setBarContact = (TextView)findViewById(R.id.barContact); 
     String barContactHolder = "@string/"+setBarTest+"Contact"; 
     int textInt2 = getResources().getIdentifier(barContactHolder, null, getPackageName()); 
     setBarContact.setText(textInt2); 

     setBarPhone = (TextView)findViewById(R.id.barPhone); 
     String barPhoneHolder = "@string/"+setBarTest+"Phone"; 
     int textInt3 = getResources().getIdentifier(barPhoneHolder, null, getPackageName()); 
     setBarPhone.setText(textInt3); 

     viewAll.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = (new Intent(Bar.this, Drinks.class)); 
       startActivity(i);   
      } 

     }); 
     beer.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       setDrinkType = ""; 
       setDrinkType = "Beer"; 
       Intent i = (new Intent(Bar.this, Drinks.class)); 
       startActivity(i); 

      } 

     }); 
     wine.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       setDrinkType = ""; 
       setDrinkType = "Wine"; 
       Intent i = (new Intent(Bar.this, Drinks.class)); 
       startActivity(i); 

      } 

     }); 
     mixedDrinks.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       setDrinkType = ""; 
       setDrinkType = "Mixed Drink"; 
       Intent i = (new Intent(Bar.this, Drinks.class)); 
       startActivity(i); 

      } 

     }); 

     other.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       setDrinkType = ""; 
       setDrinkType = "Other"; 
       Intent i = (new Intent(Bar.this, Drinks.class)); 
       startActivity(i); 

      } 

     }); 
     getTaxi.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = (new Intent(Bar.this, Taxi.class)); 
       startActivity(i);   
      } 

     }); 


    } 
} 

Drinks.java

import android.app.Activity; 
import android.os.Bundle; 
import android.widget.TextView; 

public class Drinks extends Activity{ 
    TextView drinkHolder; 
    public static String drinkType = Bar.setDrinkType; 
    String drinkTestHolder=""; 

    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_drinks); 
     drinkTestHolder = drinkType; 
     drinkHolder = (TextView)findViewById(R.id.drinkTest); 
     //String barNameHolder = "@string/"+drinkType; 
     //int textInt1 = getResources().getIdentifier(barNameHolder, null, getPackageName()); 
     drinkHolder.setText(drinkTestHolder); 
    } 
} 
+0

あなたは単に言うことができますあなたは何をしたいですか?あなたの説明がちょっと混乱しているからです... – MaxExplode

+0

どのボタンが押されたかに応じて、 "setDrinkType"変数を変更します。現在のところ、ユーザーがボタンを押してから、戻るボタンをクリックして別のボタンを押すと、最初の文字列がそのまま表示されます。 – Inessaria

+0

これは、あなたのsetDrinkTypeが静的変数であるからです – MaxExplode

答えて

関連する問題