首页 > 解决方案 > 将字符串从受保护的 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);

}

}

标签: javaandroidjson

解决方案


如果您正在执行 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()才放这个方法。


推荐阅读