我是java和android studio的新手,我在播放外部数据时有点用,但是读json或其他内容失败。
public class MainActivity extends AppCompatActivity {
int a;
Button button;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
setContentView(R.layout.activity_main);
button= (Button)findViewById(R.id.button);
button.setOnClickListener(imgButtonHandler);
}
View.OnClickListener imgButtonHandler = new View.OnClickListener() {
public void onClick(View v) {
// Intent intent = new Intent(MainActivity.this, PostDataActivity.class);
ImageView image = (ImageView)findViewById(R.id.imageView);
String url = "http://www.example.com/data.json";
JsonObjectRequest jsonObjectRequest = new JsonObjectRequest
(Request.Method.GET, url, null, new Response.Listener<JSONObject>() {
@Override
public void onResponse(JSONObject response) {
TextView z = (TextView) findViewById(R.id.textView2);
z.setText("Response: " + response.toString());
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
TextView z = (TextView) findViewById(R.id.textView2);
z.setText("Blad");
}
});
switch(a) {
default:
image.setImageResource(R.drawable.main);
TextView t = (TextView) findViewById(R.id.textView);
t.setText("Gotowy");
a=1;
break;
case 1:
image.setImageResource(R.drawable.poprawny);
TextView b = (TextView) findViewById(R.id.textView);
b.setText("Poprawny");
a=2;
break;
case 2:
image.setImageResource(R.drawable.stop);
TextView c = (TextView) findViewById(R.id.textView);
c.setText("Stop");
a=0;
break;
}
}
};
}
textView2不显示任何默认文本。
我的目标是从json或php echo中获取一个int变量并将其打印在textView上,甚至更好地将其作为公共变量。
我尝试了很多来自OKhttp,json,generic_asynctask的示例,但是我失败了。
答案 0 :(得分:0)
您在使用Volley吗?如果是,则需要实际排队您的请求。就像是
requestQueue.addToRequestQueue(jsonObjectRequest)
此外,回调将在后台线程上调用。您必须将它们发布到UI线程才能修改视图状态。
答案 1 :(得分:0)
您需要将请求添加到RequestQueue
,如下所示:
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(jsonObjectRequest);
否则,它永远不会运行。