首页 > 解决方案 > 无法在活动之间传递数据。数据为空白

问题描述

我正在尝试将一些数据从一个活动传递到另一个活动,并且我在另一个活动中进行了祝酒以查看是否正在传递数据。当祝酒出现时,它是空白的。我已经做对了所有事情,并尝试了很多不同的时间不同的方法我还创建了另一个应用程序,但问题仍然存在。它给了我空值。

我在第一个活动中的 java 代码

public class titleandcuisine extends AppCompatActivity implements AdapterView.OnItemSelectedListener {

public static final String TITLE_GET = "title";
    public static final String CUISINE_GET = "cuisine";

    ImageView imageView;
    Button button;
    Spinner spinner;
    EditText dish;

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


        dish = findViewById(R.id.editText);
        spinner = findViewById(R.id.spinner);
        ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,R.array.cuisines,android.R.layout.simple_spinner_item);
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner.setAdapter(adapter);
        spinner.setOnItemSelectedListener(this);

        button = findViewById(R.id.next);
        imageView = findViewById(R.id.close);
        imageView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(), homepage.class));
            }
        });


        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                String text = dish.getText().toString();
                String text2 = spinner.getSelectedItem().toString();

                Intent data = new Intent(getBaseContext(),imagepost.class);
               data.putExtra(TITLE_GET,text);
               data.putExtra(CUISINE_GET,text2);
                startActivity(data);

            }
        });
    }

    @Override
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

    }

    @Override
    public void onNothingSelected(AdapterView<?> parent) {

    }
}

第二个活动java代码

public class reviewactivity extends AppCompatActivity {
    TextView cuisine,title;
    ImageView displayimage,back;
    Uri myUri;

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


        Intent intent = getIntent();
        String titleget = intent.getStringExtra(titleandcuisine.TITLE_GET);
        String cuisineget = intent.getStringExtra(titleandcuisine.CUISINE_GET);


        Toast.makeText(this, titleget + cuisineget, Toast.LENGTH_SHORT).show();

        cuisine = findViewById(R.id.reviewcuisine);
        title = findViewById(R.id.reviewtitle);
        back = findViewById(R.id.backtopostvideo);
        displayimage = findViewById(R.id.reviewdisplaimage);

       // cuisine.setText(cuisineget);
       // title.setText(titleget);

       // myUri = Uri.parse(uri);
        displayimage.setImageURI(myUri);


        back.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                startActivity(new Intent(getApplicationContext(),videopost.class));
            }
        });

    }


    }


标签: javaandroid

解决方案


您需要从EditText单击按钮时读取文本。就像是:

 title = dish.getText().toString(); // Add this
 Intent data = new Intent(getBaseContext(),imagepost.class);
 data.putExtra(Intent.EXTRA_TEXT, title);
 ...

还有一件事:您正在尝试阅读Intent.EXTRA_TEXT活动reviewactivity。但是,没有任何东西开始该活动(至少在您共享的代码中)。


推荐阅读