0

在这里,我在我的项目中创建了 2 个活动。

public class CheckAvailability extends Activity{

Button but1,but2;
EditText brName;
TextView txt1;
String text;
//private static final String ATM_NO = "atmbrno";
//private static final String ATM_PLACE = "atmbrname";


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

    brName =(EditText)findViewById(R.id.editText1);
    but1 = (Button)findViewById(R.id.button5); 
    but2 = (Button)findViewById(R.id.button6);



    but1.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){

            String b_name=brName.getText().toString();

            Intent intent1 = new Intent(); 
            intent1.setClass(getApplicationContext(), ListAtmActivity.class);
            Bundle b = new Bundle();
            b.putString("key", b_name);
            intent1.putExtras(b);
            startActivity(intent1);
            finish();}
});

    but2.setOnClickListener(new View.OnClickListener(){

        public void onClick(View v){
            Intent intent1 = new Intent(); 
            intent1.setClass(getApplicationContext(), SelectOption.class);
            startActivity(intent1);
    }                                                                       });

}
}

我想将 b_name 字符串值传递给另一个活动。这是我的第二个活动。

public class ListAtmActivity extends ListActivity{


TextView error;
String brName;


// contacts JSONArray
JSONArray contacts = null;

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

    Bundle b = getIntent().getExtras();
    brName = b.getString("key");

    error = (TextView)findViewById(R.id.name);
    error.setText(brName);}}

但我无法在我的第二个活动中得到那个字符串?请帮我找出错误?

4

8 回答 8

3

答案比您尝试做的简单:

Intent intent = new Intent(this, ListAtmActivity.class);
intent.putExtra("key", b_name);
startActivity(intent);

然后在活动 B 中:

Intent intent= getIntent(); // gets the previously created intent
String value = intent.getStringExtra("key");
于 2012-09-12T09:42:46.190 回答
1
public void onClick(View v){
        Intent intent1 = new Intent(); 
        intent1.setClass(CheckAvailability.this , ListAtmActivity.class);
        intent1.putExtra("name", b_name );
        startActivity(intent1);
}  

然后在第二个活动中:

   getIntent().getStringExtra("name");
于 2012-09-12T09:41:49.123 回答
1

在活动 1 中:

 Intent intent1 = new Intent(); 
        intent1.setClass(getApplicationContext(), ListAtmActivity.class);           
        intent1.putExtra("key", b_name);
        startActivity(intent1);
        finish();

在活动 2 中:

Intent intent = getIntent();
brName = intent.getStringExtra("key");
于 2012-09-12T09:43:37.650 回答
1

在您的第一个活动中,

            Intent passIntent = new Intent(FirstActivity.this,
                    SecondActivity.class);
            passIntent.putExtra("key", b_name);
            startActivity(passIntent);

在您的 SecondActivity 中,

String u_name=getIntent().getExtras().getString("key");
于 2012-09-12T09:43:58.060 回答
1

您需要使用以下代码putExtra()

Intent intent=new Intent(this,ListAtmActivity.class);
intent.putExtra("key",b_name);
startActivity(intent)

并在ListAtmActivity获取字符串中使用

String data;
data=getIntent.getExtras().getString("key");

现在您在数据变量中发送的值。

于 2012-09-12T09:44:00.023 回答
0

在第一个活动中

Intent in=new Intent(first.this,second.class);
in.putExtra("nameOfImage", "firstImage");
startActivity(in);

在第二个活动中

Intent intent = getIntent();
String nameOfImage = intent.getStringExtra("nameOfImage");
于 2013-10-30T11:45:54.010 回答
0

在你的第一个活动中

Intent intent = new Intent(context, second.class);
intent.putExtra("string_name", "string");
startActivity(intent);

在你的第二个活动中

Bundle bundle = getIntent().getExtras();
extras.getString("string_name")
于 2012-09-12T09:51:02.940 回答
0

在您的第二项活动中:

代替:

Bundle b = getIntent().getExtras();
brName = b.getString("key");

和:

Intent intentListatmactivity = getIntent(); 
brName = intentListatmactivity.getStringExtra("key");
于 2015-07-23T06:42:48.130 回答