java - 无法在活动之间传递数据。数据为空白
问题描述
我正在尝试将一些数据从一个活动传递到另一个活动,并且我在另一个活动中进行了祝酒以查看是否正在传递数据。当祝酒出现时,它是空白的。我已经做对了所有事情,并尝试了很多不同的时间不同的方法我还创建了另一个应用程序,但问题仍然存在。它给了我空值。
我在第一个活动中的 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));
}
});
}
}
解决方案
您需要从EditText
单击按钮时读取文本。就像是:
title = dish.getText().toString(); // Add this
Intent data = new Intent(getBaseContext(),imagepost.class);
data.putExtra(Intent.EXTRA_TEXT, title);
...
还有一件事:您正在尝试阅读Intent.EXTRA_TEXT
活动reviewactivity
。但是,没有任何东西开始该活动(至少在您共享的代码中)。
推荐阅读
- regular-language - 在 Kleene 明星手术中订购?
- c# - 访问 IIS 服务器中托管的 ASP.NET Core 的共享打印机
- mongodb - docker内部的mongodb ipv6
- javascript - 在顶层重新渲染组件
- node.js - Firestore Timestamp Callable vs HTTP Function 奇怪的行为
- exception - 我的代码中显示的问题:System.ArgumentOutOfRangeException:'索引超出范围。必须是非负数且小于集合的大小
- java - 在 Spring Boot 中从外部 url 压缩和下载文件
- antlr4 - 为什么添加未使用的规则会改变 ANTLR 语法的输出?
- ios - 如何正确更新 UIViewRepresentable/UIViewControllerRepresentable 内容?
- proxy - squid 代理允许特定用户访问特定站点