意图有多个起始参数

时间:2017-06-06 08:25:49

标签: android android-intent start-activity

我希望在点击按钮时将值从第一个活动传递到最后一个活动。

同时我想让这个按钮带我进入第二个活动。不知怎的,这不起作用。

private void imagebutton1 () {
          ImageButton btn = (ImageButton) findViewById(R.id.imageButton4);
            btn.setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  //startActivity (new Intent(Akt1.this,Akt2.class));

                  String data1 = "data1";

                  Intent intent = new Intent (Akt1.this,Akt2.class);
                  Intent passdata_intent = new Intent(Akt1.this, Akt6.class);
                  passdata_intent.putExtra("data1",data1);

                 startActivity(passdata_intent);

              }
          });

5 个答案:

答案 0 :(得分:0)

  

我希望在a时将值从第一个活动传递到最后一个活动   单击按钮。

抱歉,这是不可能的。你必须遵循活动堆栈。

要将数据从一个传递到另一个,一个intent就足够了,不需要两个。

 Intent intent = new Intent (Akt1.this,Akt2.class);
 intent.putExtra("data1",data1);
 startActivity(intent);

请参阅how to directly pass value of a variable from 1st activty to 3rd activity using putextra?

<强> Akt1的

 Intent intent = new Intent (Akt1.this,Akt2.class);
 intent.putExtra("data1",data1);
 startActivity(intent);

<强> Akt2的

setContentView之后

Intent intent = getIntent();
String data1 = intent.getStringExtra("data1");

答案 1 :(得分:0)

private void imagebutton1 () {
        ImageButton btn = (ImageButton) findViewById(R.id.imageButton4);
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {    
                String data1 = "data1";

                Intent intent = new Intent (Akt1.this,Akt2.class);
                intent.putExtra("data1",data1);

               startActivity(intent );

            }
        });

例如:

在MainActivity中:

Intent intent = new Intent(this, OtherActivity.class);
intent.putExtra(OtherActivity.KEY_EXTRA, yourDataObject);
startActivity(intent);

在OtherActivity中:

public static final String KEY_EXTRA = "com.example.yourapp.KEY_BOOK";

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

  String yourDataObject = null;

  if (getIntent().hasExtra(KEY_EXTRA)) {
      yourDataObject = getIntent().getStringExtra(KEY_EXTRA);
  } else {
      throw new IllegalArgumentException("Activity cannot find  extras " + KEY_EXTRA);
  }
  // do stuff
}

此处有更多信息:http://developer.android.com/reference/android/content/Intent.html

答案 2 :(得分:0)

我不知道为什么你需要用一个按钮开始两个活动,但你可以开始第一个活动,在你创建的第一个活动中你可以开始第二个活动(你可以重新创建你的意图)第一项活动。)

答案 3 :(得分:0)

   btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //startActivity (new Intent(Akt1.this,Akt2.class));

                String data1 = "data1";

                Intent intent = new Intent (Akt1.this,Akt2.class);
                intent.putExtra("data1",data1);
                startActivity(intent);
            }
        });

在您的Akt2.class中添加此代码

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

    String data1 = getIntent().getExtras().getString("data1");

    // your code

}

答案 4 :(得分:0)

请尝试以下操作:

.ui-grid-top-panel,
.ui-grid-header-viewport {
   overflow: visible !important;
} 

然后在AKT6:

            @Override
            public void onClick(View v) {
                //startActivity (new Intent(Akt1.this,Akt2.class));

                String data1 = "data1";

                getSharedPreferences("YOURKEY", MODE_PRIVATE).edit().putString("someKey", data1).apply();

                startActivity(new Intent (Akt1.this, Akt2.class));
            }