1

我成功地尝试在三个活动之间传递数据。那是 :

(Data3)Activity1(Data1)-->(Data1)Activity2(Data2)-->(Data2)Activity3)

现在的问题是:

  1. 我想使用条件在这些活动之间传递数据。那是在Activity2中,在向Activity3发送数据之前我想检查一下
WORD = "word building"
DROP = "word built"

if  WORD FROM EDITTEXT == WORD
      pass data to Activity1 AND
      goto Activity1
else 
      if WORD FROM EDITTEXT == DROP
          pass data to Activity3 AND
          goto Activity3

这是名为 PickCard.java 的 Activity1 的代码

public class PickCard extends Activity {

    String card = "Card Picked";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        displayIntentData();

        findViewById(R.id.sendButton).setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                Intent intent = new Intent(PickCard.this, BuildWord.class);
                intent.putExtra("key", card);
                startActivity(intent);
            }
        });
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);//must store the new intent unless getIntent() will return the old one
        displayIntentData();
    }

    private void displayIntentData() {
        Intent intent = getIntent();
        TextView tv = (TextView) findViewById(R.id.intentData);
        Bundle extras = intent.getExtras();

        if (extras != null) {
            tv.setText("Data received: " + extras.getString("key"));
        } else {
            tv.setText("No extradata received");
        }
    }
}

这是 Activity2 BuildWord.java 的代码

public class BuildWord extends Activity {

    String word = "Word Building";
    String finished = "Word Built";
    EditText simulate = (EditText) findViewById(R.id.dataToSend);
    String getdata = simulate.getText().toString();

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.buildword);

        displayIntentData();

        if (getdata == word) {
            findViewById(R.id.sendButton1).setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Intent intent = new Intent(BuildWord.this, MainActivity.class);
                    intent.putExtra("key", getdata);
                    startActivity(intent);

                }
            });
        } else {
            findViewById(R.id.sendButton1).setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Intent intent = new Intent(BuildWord.this, DropCard.class);
                    intent.putExtra("key", finished);
                    startActivity(intent);
                }
            });
        }
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);
        displayIntentData();
    }

    private void displayIntentData() {
        Intent intent = getIntent();
        TextView tv = (TextView) findViewById(R.id.intentData1);
        Bundle extras = intent.getExtras();

        if (extras != null) {
            tv.setText("Data received: " + extras.getString("key"));
        } else {
            tv.setText("No extradata received");
        }
    }
}

这是名为 DropCard.java 的 Activity3 的代码

public class DropCard extends Activity {

    String drop = "Card Dropped";
    String declared = "User Declared";
    boolean won = false;
    /*Intent intent = getIntent();
     TextView tv = (TextView)findViewById(R.id.intentData2);
     Bundle extras=intent.getExtras();*/
    String get = "word building";//extras.getString("key");

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dropcard);

        displayIntentData();

        if (get == "word built") {
            findViewById(R.id.sendButton2).setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Intent intent = new Intent(DropCard.this, Declare.class);
                    intent.putExtra("key", declared);
                    startActivity(intent);
                }
            });
        } else {
            findViewById(R.id.sendButton2).setOnClickListener(new OnClickListener() {
                public void onClick(View v) {
                    Intent intent = new Intent(DropCard.this, MainActivity.class);
                    intent.putExtra("key", drop);
                    startActivity(intent);
                    //notice we dont call finish() here
                }
            });
        }
    }

    @Override
    protected void onNewIntent(Intent intent) {
        super.onNewIntent(intent);
        setIntent(intent);//must store the new intent unless getIntent() will return the old one
        displayIntentData();
    }

    private void displayIntentData() {
        Intent intent = getIntent();
        TextView tv = (TextView) findViewById(R.id.intentData2);
        Bundle extras = intent.getExtras();

        if (extras != null) {
            tv.setText("Data received: " + extras.getString("key"));
        } else {
            tv.setText("No extradata received");
        }
    }
}
4

3 回答 3

0

它很简单,你必须compare这样做default method equalsIgnoreCase()

    String name = edit_text.getText().toString();

    if(name.equalsIgnoreCase("WellCome"))
    {

        //CALL YOUR ACTIVITY ONE

    }
    else
    {

        //CALL YOUR ACTIVITY THREE

    }
于 2012-11-07T11:20:48.160 回答
0

利用

if (getdata.equals(word)){

}

代替

if (getdata == word){

}

用于比较当前代码中的 Strings.as 将全部替换==equals

于 2012-11-07T11:14:36.413 回答
0
  if (getData.getText().toString().equalsIgnoreCase("String name"))//change this line in your code for checking
    {
        findViewById(R.id.sendButton1).setOnClickListener(new OnClickListener() 
        {   
            public void onClick(View v) 
            {
                Intent intent = new Intent(BuildWord.this,MainActivity.class);
                intent.putExtra("key", getdata);
                startActivity(intent);

            }
        });
    }
    else
    {
        findViewById(R.id.sendButton1).setOnClickListener(new OnClickListener() 
        {   
            public void onClick(View v) 
            {
                Intent intent = new Intent(BuildWord.this,DropCard.class);
                intent.putExtra("key", finished);
                startActivity(intent);                  
            }
        });
    }
于 2012-11-07T11:15:57.750 回答