簡體   English   中英

(Android / Java)如何分配字符串並在活動或Java類之間共享?

[英](Android / Java) How do you assign a string and share across activities or java classes?

例如,假設我只有一個按鈕。 使用這樣的XML:

 <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/PandR" android:id="@+id/PandRA"> 

我想用Java做的是創建一個可以在另一個活動或Java類上訪問的字符串值。 這是我的Java當前的樣子:

公共類TeamAOffense擴展了ActionBarActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_team_aoffense);
    Toast.makeText(this, "Team A's turn.", Toast.LENGTH_LONG).show();

    // Make a method that saves a value for pressing PandRA, later used in CalcForAOffBDef

    // Button for PandRA, assigning value for calculating.
    final Button pandrBttn = (Button) findViewById(R.id.PandRA);

    pandrBttn.setOnClickListener(new View.OnClickListener() {

        // Needs to save value that is later compared.

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(TeamAOffense.this, ExchangeAToB.class);
            startActivity(intent);
        }
    });

    // Button for MandFA, assigning value for calculating.
    final Button mandfBttn = (Button) findViewById(R.id.MandFA);

    mandfBttn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Needs to save value that is later compared.
            Intent intent = new Intent(TeamAOffense.this, ExchangeAToB.class);
            startActivity(intent);
        }
    });

    // Button for SandCA, assigning value for calculating.
    final Button sandcBttn = (Button) findViewById(R.id.SandCA);

    sandcBttn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // Needs to save value that is later compared.
            Intent intent = new Intent(TeamAOffense.this, ExchangeAToB.class);
            startActivity(intent);
        }
    });
}

您有兩種方法:

  1. 要使用Intent.putExtra(String key, String value)
  2. 使用singleton傳遞ObjectsString ,甚至custom class

例子
例子1

 Intent intent =  new Intent(TeamAOffense.this, ExchangeAToB.class);
 intent.putExtra("KEY", "Value");
 startActivity(intent);
 // and in `ExchangeAToB` class use 
 String key getIntent().getExtras().getString("KEY");`

例子2

public class MyInstance{
private static MyInstance instance = null;
private Object mObject;
private MyInstance(){
mObject = new Object();
}

public static MyInstance getInstance(){
if(instance == null){
instance = new MyInstance();
}
return instance;
}

public Object getObject(){
return mObject;
}

public void setObject(Object obj){
mObject = obj;
}
}
// Use MyInstance.getInstance().setObject(new String()); // in activity 1
// and Object myObject = MyInstance.getInstance().getObject(); // in activity 2

**不要忘記使用后清除對象

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM