2016-03-01 120 views
0

我正在使用Android Studio。我希望用戶輸入editText的值作爲全局變量存儲,以便我可以在不同的活動中使用它(我試圖製作一個籃子,並且用戶輸入的值是產品) 此處是我與EDITTEXT第一頁代碼調用,我想打一個全局變量)木:如何使輸入editText的值爲全局變量/字符串?

public class Letters extends AppCompatActivity { 
    int txtSize = 14; 
    EditText Wood; 
    Button bSize, bSize1, bSize2, bSize3, bBasket; 
    public int count = 5; 
    private LayoutInflater mInflater; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.content_letters); 

     Wood = (EditText) findViewById(R.id.Wood); 
     Button bSize = (Button) findViewById(R.id.bSize); 
     Button bSize1 = (Button) findViewById(R.id.bSize1); 
     Button bSize2 = (Button) findViewById(R.id.bSize2); 
     Button bSize3 = (Button) findViewById(R.id.bSize3); 
     Button bBasket = (Button) findViewById(R.id.bBasket); 
     final TextView price = (TextView) findViewById(R.id.price); 

     bSize.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Wood.setTextSize(40); 
       price.setText("£10"); 
      } 
     }); 
     bSize1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Wood.setTextSize(60); 
       price.setText("£20"); 
      } 
     }); 
     bSize2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Wood.setTextSize(100); 
       price.setText("£35"); 
      } 
     }); 
     bSize3.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Wood.setTextSize(150); 
       price.setText("£50"); 
      } 
     }); 

     bBasket.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 
       EditText Wood = (EditText) findViewById(R.id.Wood); 
       String str = Wood.getText().toString(); 
       if (str.length() == 0) { 
        Wood.requestFocus(); 
        Wood.setError("FIELD CANNOT BE EMPTY"); 
       } else if (str.length() >= 2) { 
        Wood.requestFocus(); 
        Wood.setError("You can only type one letter!"); 
       } else { 
        Intent intent2 = new Intent(Letters.this, Basket.class); 
        startActivity(intent2); 
       } 
      } 
     }); 
    } 
} 

謝謝

回答

0

方法1:添加額外給意向

Intent intent2 = new Intent(Letters.this, Basket.class); 
intent2.putExtra("MY_INFO",str); // EDIT: putExtra() method 
startActivity(intent2); 

在Basket.java在其onCreate方法,

@Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.content_basket); 
     String strFromActivity=getIntent().getStringExtra("MY_INFO"); 
} 

方法2:創建在Letters.java類的靜態成員

在類信件,聲明公共靜態變量,

public static String editTextString=""; 

添加,在此行後

String str = Wood.getText().toString(); 
editTextString=str; 

N你可以通過從任何一個類別調用Letters.editTextString來訪問這個變量。

+0

謝謝你的回答。當我輸入intent2.putExtras(「MY_INFO」,str);它提出不能解決方法'putExtras(java.lang.String,java.lang.String) – 09Emi

+0

編輯:putExtra()是正確的方法簽名,如果這解決了你的問題,請標記爲已回答。 – Talha

+0

謝謝,你知道如何打印字符串嗎? – 09Emi