- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
这是我的代码,用于显示两个值:推荐的胰岛素剂量和注入(inject)的胰岛素剂量。这两个值被传递给另一个 Activity 。
我使用了两个 Intent 将两个值传递给另一个 Activity (NewActivity)。
问题是,当使用两个 Intent 时,仅显示一个值。输出显示为:
Recommended insulin dosage:null, Administered insulin dosage:10 (correct value of the calculation).
如果从button.setOnClickListener中删除startActivity(intent),输出将显示为:
Recommended insulin dosage:23 (correct value), Administered insulin dosage:null.
其中一个值正在变为 null。如何显示两个值?
我也尝试将字符串声明为公共(public)
MainActivity.java
public class MainActivity extends Activity implements View.OnClickListener {
public static final int DIALOG_DOWNLOAD_PROGRESS = 0;
private Button startBtn;
private ProgressDialog mProgressDialog;
private Button button;
private Button button2;
private EditText editText;
private EditText editText2;
private EditText editText4;
public static String myid;
public static String insulin;
private Spinner dynamicSpinner;
private ProgressDialog loading;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Intent intent=getIntent();
String carbval=intent.getStringExtra("carbval");
final EditText editText2 = (EditText) findViewById(R.id.editText2);
editText2.setText(carbval);
dynamicSpinner = (Spinner) findViewById(R.id.dynamic_spinner);
editText = (EditText) findViewById(R.id.editText);
button2 = (Button) findViewById(R.id.button2);
button = (Button) findViewById(R.id.button);
editText4=(EditText) findViewById(R.id.editText4);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String carbohydrate = editText2.getText().toString().trim();
String dailydose = editText4.getText().toString().trim();
int cc = Integer.parseInt(carbohydrate);
int dd = Integer.parseInt(dailydose);
int goc = 450 / dd;
int ab = cc / goc;
myid = Integer.toString(ab);
Intent intent1=new Intent(MainActivity.this,NewActivity.class);
intent1.putExtra("ids",myid);
startActivity(intent1);
}
});
Spinner staticSpinner = (Spinner) findViewById(R.id.static_spinner);
// Create an ArrayAdapter using the string array and a default spinner
ArrayAdapter<CharSequence> staticAdapter = ArrayAdapter
.createFromResource(this, R.array.brew_array,
android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
staticAdapter
.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
staticSpinner.setAdapter(staticAdapter);
Spinner dynamicSpinner = (Spinner) findViewById(R.id.dynamic_spinner);
String[] items = new String[] { "---SELECT---", "LOW", "MODERATE", "HIGH" };
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, items);
dynamicSpinner.setAdapter(adapter);
dynamicSpinner.setOnItemSelectedListener(new OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
Log.v("item", (String) parent.getItemAtPosition(position));
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub
}
});
}
private void getData() {
String bloodglucose = editText.getText().toString().trim();
if (bloodglucose.equals("")) {
Toast.makeText(this, "Please enter bloodglucose", Toast.LENGTH_LONG).show();
return;
}
String dosage =dynamicSpinner.getSelectedItem().toString().trim();
if (dosage.equals("")) {
Toast.makeText(this, "Please enter dosage", Toast.LENGTH_LONG).show();
return;
}
loading = ProgressDialog.show(this,"Please wait...","Calculating insulin dosage...",false,false);
String url1 = "http://10.1.6.21/getData1.php?bloodglucose="+editText.getText().toString().trim()+"&dosage="+dynamicSpinner.getSelectedItem().toString().trim();
StringRequest stringRequest = new StringRequest(url1, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
loading.dismiss();
showJSON(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
Toast.makeText(MainActivity.this,error.getMessage().toString(),Toast.LENGTH_LONG).show();
}
});
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
}
private void showJSON(String response){
String insulin="";
try {
JSONObject jsonObject = new JSONObject(response);
JSONArray result = jsonObject.getJSONArray(Confignew.JSON_ARRAY);
JSONObject collegeData = result.getJSONObject(0);
insulin = collegeData.getString(Confignew.KEY_INSULIN);
Intent intent1=new Intent(MainActivity.this,NewActivity.class);
intent1.putExtra("value",insulin);
startActivity(intent1);
} catch (JSONException e) {
e.printStackTrace();
}
}
@Override
public void onClick(View v) {
getData();
}
}
NewActivity.java
public class NewActivity extends AppCompatActivity {
private Button mBtGoBack;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_new);
TextView tvmessage=(TextView) findViewById(R.id.tv_message);
tvmessage.setText("Recommended Insulin Dosage: "+getIntent().getExtras().getString("value"));
TextView tvmessage1=(TextView) findViewById(R.id.tv_message1);
tvmessage1.setText("Administered Insulin Dosage: "+getIntent().getExtras().getString("ids"));
mBtGoBack = (Button) findViewById(R.id.bt_go_back);
mBtGoBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
finish();
}
});
}
}
最佳答案
查看您的代码,您似乎在开始 Activity 之前重新创建 Intent 。您创建的每个 Intent 只有一个值传递到 NewActivity.java。您需要将两个值添加到同一 Intent ,而不是重新创建它。
这是您的问题:
Intent intent1=new Intent(MainActivity.this,NewActivity.class);
intent1.putExtra("ids",myid);
Intent intent1=new Intent(MainActivity.this,NewActivity.class);
intent1.putExtra("value",insulin);
您应该只创建 Intent 一次,然后根据需要向其添加额外内容,而不是实例化两次。
关于java - 将两个值作为字符串传递给同一 Activity 会返回一个值 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43648655/
如何使用 SPListCollection.Add(String, String, String, String, Int32, String, SPListTemplate.QuickLaunchO
我刚刚开始使用 C++ 并且对 C# 有一些经验,所以我有一些一般的编程经验。然而,似乎我马上就被击落了。我试过在谷歌上寻找,以免浪费任何人的时间,但没有结果。 int main(int argc,
这个问题已经有答案了: In Java 8 how do I transform a Map to another Map using a lambda? (8 个回答) Convert a Map>
我正在使用 node + typescript 和集成的 swagger 进行 API 调用。我 Swagger 提出以下要求 http://localhost:3033/employees/sear
我是 C++ 容器模板的新手。我收集了一些记录。每条记录都有一个唯一的名称,以及一个字段/值对列表。将按名称访问记录。字段/值对的顺序很重要。因此我设计如下: typedef string
我需要这两种方法,但j2me没有,我找到了一个replaceall();但这是 replaceall(string,string,string); 第二个方法是SringBuffer但在j2me中它没
If string is an alias of String in the .net framework为什么会发生这种情况,我应该如何解释它: type JustAString = string
我有两个列表(或字符串):一个大,另一个小。 我想检查较大的(A)是否包含小的(B)。 我的期望如下: 案例 1. B 是 A 的子集 A = [1,2,3] B = [1,2] contains(A
我有一个似乎无法解决的小问题。 这里...我有一个像这样创建的输入... var input = $(''); 如果我这样做......一切都很好 $(this).append(input); 如果我
我有以下代码片段 string[] lines = objects.Split(new string[] { "\r\n", "\n" }, StringSplitOptions.No
这可能真的很简单,但我已经坚持了一段时间了。 我正在尝试输出一个字符串,然后输出一个带有两位小数的 double ,后跟另一个字符串,这是我的代码。 System.out.printf("成本:%.2
以下是 Cloud Firestore 列表查询中的示例之一 citiesRef.where("state", ">=", "CA").where("state", "= 字符串,我们在Stack O
我正在尝试检查一个字符串是否包含在另一个字符串中。后面的代码非常简单。我怎样才能在 jquery 中做到这一点? function deleteRow(locName, locID) { if
这个问题在这里已经有了答案: How to implement big int in C++ (14 个答案) 关闭 9 年前。 我有 2 个字符串,都只包含数字。这些数字大于 uint64_t 的
我有一个带有自定义转换器的 Dozer 映射: com.xyz.Customer com.xyz.CustomerDAO customerName
这个问题在这里已经有了答案: How do I compare strings in Java? (23 个回答) 关闭 6 年前。 我想了解字符串池的工作原理以及一个字符串等于另一个字符串的规则是
我已阅读 this问题和其他一些问题。但它们与我的问题有些无关 对于 UILabel 如果你不指定 ? 或 ! 你会得到这样的错误: @IBOutlet property has non-option
这两种方法中哪一种在理论上更快,为什么? (指向字符串的指针必须是常量。) destination[count] 和 *destination++ 之间的确切区别是什么? destination[co
This question already has answers here: Closed 11 years ago. Possible Duplicates: Is String.Format a
我有一个Stream一个文件的,现在我想将相同的单词组合成 Map这很重要,这个词在 Stream 中出现的频率. 我知道我必须使用 collect(Collectors.groupingBy(..)
我是一名优秀的程序员,十分优秀!