Значение Toast для TextView второго действия - PullRequest
0 голосов
/ 25 ноября 2018

Это мой MainActivity.java, и я хочу получить результаты в текстовом представлении другого действия?Как мне этого добиться?Не могли бы вы показать мне пример, пожалуйста.

public class MainActivity extends AppCompatActivity {
private Button scan_btn;

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

    scan_btn=(Button)findViewById(R.id.btnQr);
    final Activity activity =this;
    scan_btn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            IntentIntegrator intentIntegrator = new IntentIntegrator(activity);
            intentIntegrator.setDesiredBarcodeFormats(IntentIntegrator.QR_CODE_TYPES);
            intentIntegrator.setPrompt("Scan");
            intentIntegrator.setCameraId(0);
            intentIntegrator.setBeepEnabled(false);
            intentIntegrator.setBarcodeImageEnabled(false);
            intentIntegrator.initiateScan();

        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    IntentResult result = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);
    if (result != null){
        if (result.getContents()==null){
            Toast.makeText(this,"You cancelled scanning",Toast.LENGTH_LONG).show();

        }
        else {
            Toast.makeText(this,result.getContents(),Toast.LENGTH_LONG).show();
            }
    }
    else {


        super.onActivityResult(requestCode, resultCode, data);
    }
}
}

Это мое второе занятие.Где я хочу показать результат.

  public class DetailActivity extends AppCompatActivity {
  private TextView qrResult;


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

qrResult= findViewById(R.id.qrResult);



}
}

Если хотите, я также могу опубликовать свой файл макета.Thankyou.

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Вы можете поместить данные в цель из вашей основной деятельности и получить намерение из второго действия для данных.Например:

В вашем MainActivity.class

Intent intent = new Intent(MainActivity.this, DetailActivity.class);
        intent.putExtra("result", "Your result text here");
        startActivity(intent);

В вашем DetailsActivity.class:

Intent intent = getIntent();
String result = intent.getStringExtra("result");
qrResult.setText(result);

Вы даже можете отправить объект любого типа через намерение.Пожалуйста, Google это для получения дополнительной информации.

0 голосов
/ 25 ноября 2018

Вам необходимо создать новый объект Intent и добавить к нему дополнительные данные с помощью intent.putextra ().Этот метод может принимать объект String в качестве аргумента.Вам нужно указать уникальный ключ для этой строки. Затем начните новое действие.Например, Intent i = new Intent (context, nextactivity.class) i.putextra («stringKey», yourSstring) startActivity (i)

Затем во втором упражнении необходимо получить намерение, которое началось, чтоактивность (с getIntent), вы можете использовать его уже на OnCreate.Функция getIntent возвращает объект намерения, который запустил новое действие.Когда у вас есть новое намерение, вы можете получить дополнительную строку, которую вы передали из старого действия, с помощью intent.getStringExtra («stringKey»). Это позволяет вам передавать простые данные между действиями.Убедитесь, что используете тот же ключ.

...