java - 将字符串从受保护的 void onCreate 方法解析为公共类主要活动
问题描述
我已经在公共类中声明了字符串 string1、string2、string3、string4..string7。我正在使用 onCreate 方法中的 JSON 从 MySQL 数据库中获取值,并将其存储在字符串变量 st1、st2、st3....、st7 中。
现在我需要将这些 st1 ,st2,st3,...,st7 值分别传递给 string1, string2, string3... string7。
public class MainActivity extends AppCompatActivity {
private Context mContext;
private Activity mActivity;
private CoordinatorLayout mCLayout;
private Button mButtonDo;
private TextView mTextView;
private String mJSONURLString = "http://paolo.....";
String string1, string2, string3, string4, string4, string5, string6, string7;
String seats = string1 + "" + string2 + "" + string3 + "" + string4 + "" + string5 + "" + string6 + "" + string7;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mContext = getApplicationContext();
mActivity = MainActivity.this;
mCLayout = (CoordinatorLayout) findViewById(R.id.coordinator_layout);
mTextView = (TextView) findViewById(R.id.tv);
mTextView.setText("");
RequestQueue requestQueue = Volley.newRequestQueue(mContext);
JsonArrayRequest jsonArrayRequest = new JsonArrayRequest(Request.Method.POST, mJSONURLString, null,
new Response.Listener<JSONArray>() {
@Override
public void onResponse(JSONArray seat) {
try {
// Loop through the array elements
for (int i = 0; i < seat.length(); i++) {
// Get current json object
JSONObject student = seat.getJSONObject(i);
String st1 = student.getString("st1");
String st2 = student.getString("st2");
String st3 = student.getString("st3");
String st4 = student.getString("st4");
String st5 = student.getString("st5");
String st6 = student.getString("st6");
String st7 = student.getString("st7");
}
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
requestQueue.add(jsonArrayRequest);
}
}
解决方案
如果您正在执行 for 循环中的元素:
String st1 = student.getString("st1");
String st2 = student.getString("st2");
String st3 = student.getString("st3");
String st4 = student.getString("st4");
String st5 = student.getString("st5");
String st6 = student.getString("st6");
String st7 = student.getString("st7");
您应该将其更改为:
string1 = student.getString("st1");
string2 = student.getString("st2");
string3 = student.getString("st3");
string4 = student.getString("st4");
string5 = student.getString("st5");
string6 = student.getString("st6");
string7 = student.getString("st7");
如果您想更新 UI 或其他内容,只需在其中添加方法onResponse()
我的意思是如果您想显示该文本,您可以创建一个
private void showText(){
your_text_view1.setText(string1);
(....)
}
然后在最后onResponse()
才放这个方法。
推荐阅读
- javascript - 检查标志是否设置为大整数
- apache-spark - 如何在 Apache Spark Thrift 服务器中为增量收集设置行批量大小?
- python - 使用 pandas 将数据帧堆叠到第三维(面板折旧)
- axios - 如何使用 Dialogflow 的后续事件读取来自 Web 服务(> 5 秒)的长时间等待响应?
- terraform - Terraform - API 以不同的顺序返回数据,所以 terraform 看到了毫无意义的变化?
- amazon-web-services - 如何在 AWS Chime sdk 上向用户发送私人消息?
- c++ - 如何模拟对 boost.asio 库的调用?
- keycloak - 为什么 Keycloak 集群中所有 Keycloak 实例必须同时升级
- text-formatting - 是否有表示持续时间、时间跨度或时间增量的标准方法?
- c# - 从 C# 类生成 Avro 模式