Java JSON分析运行时错误-不同的类
我有两个类,一个叫做Main1843,另一个叫做JsonParse。当我把所有的东西都复制到和main1843一样的课堂上时,一切都很好。但我更喜欢分班上课,保持整洁。问题是我不能运行下面的代码。没有显示错误,只是应用程序停止运行。 (清单文件具有权限) 因为这是一个简短的程序,也许你可以检查每一行 Main1843等级:Java JSON分析运行时错误-不同的类,java,android,json,http-post,extends,Java,Android,Json,Http Post,Extends,我有两个类,一个叫做Main1843,另一个叫做JsonParse。当我把所有的东西都复制到和main1843一样的课堂上时,一切都很好。但我更喜欢分班上课,保持整洁。问题是我不能运行下面的代码。没有显示错误,只是应用程序停止运行。 (清单文件具有权限) 因为这是一个简短的程序,也许你可以检查每一行 Main1843等级: public class Main1843 extends Activity implements View.OnClickListener { private Button
public class Main1843 extends Activity implements View.OnClickListener {
private Button button;
private TextView tv;
private EditText et;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1843);
tv = (TextView) findViewById(R.id.panel);
et = (EditText) findViewById(R.id.editText1);
button = (Button) findViewById(R.id.button1);
button.setOnClickListener(this);
}
public void onClick(View v) {
String text;
text = et.getText().toString();
tv.append(text);
tv.append("\n");
new JsonParse().execute();
}
protected void putScreen(String t) {
tv.append(t);
}
}
另一个类(JsonParse)扩展了AsyncTask
public类JsonParse扩展了异步任务{
私家弦亚子;
保护串yazi2;
受保护的字符串id;
私有字符串TAG=“JWP”;
@凌驾
受保护对象doInBackground(对象[]对象){
回程邮递(”http://somewebsite/show.php");
}
公共字符串帖子(字符串url){
字符串结果=”;
HttpClient=new DefaultHttpClient();
HttpPost=新的HttpPost(url);
Main1843 m=新Main1843();
试一试{
HttpResponse response=client.execute(post);
InputStream InputStream=response.getEntity().getContent();
如果(inputStream!=null){
字符串文本=”;
结果=convertInputStreamToString(inputStream);
Log.d(标签、结果);
JSONArray阅读器=新的JSONArray(结果);
for(int i=0;i
谢谢您的时间。评论解决了问题 “您需要将活动上下文传递到AsyncTask中以调用其上的方法,或者您可以调用活动实现的侦听器,或者您可以使用localbroadcast。”KenWolf
@ShaikhMohammedShariq您是否添加了internet权限?是的,已经写到,清单文件具有internet权限和internet状态权限。
Main1843 m=new Main1843()代码>这不是你使用Activities的方式好吧,你为什么不使用gson?@KenWolf你能更具体一点吗?我用它来访问“putScreen”功能。
public class JsonParse extends AsyncTask{
private String yazi;
protected String yazi2;
protected String id;
private String TAG = "JWP";
@Override
protected Object doInBackground(Object[] objects) {
return POST("http://somewebsite/show.php");
}
public String POST(String url) {
String result = "";
HttpClient client = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
Main1843 m = new Main1843();
try {
HttpResponse response = client.execute(post);
InputStream inputStream = response.getEntity().getContent();
if (inputStream != null) {
String text = "";
result = convertInputStreamToString(inputStream);
Log.d(TAG, result);
JSONArray reader = new JSONArray(result);
for (int i = 0; i < reader.length(); i++) {
JSONObject data = reader.getJSONObject(i);
id = data.getString("id");
yazi = data.getString("yazi");
yazi2 = data.getString("yazi2");
text += yazi;
text += " ";
}
m.putScreen(text);
} else
result = "Did not work";
return result;
} catch (IOException e) {
e.printStackTrace();
return "Exception 1";
} catch (Exception e) {
e.printStackTrace();
return "haha";
}
}
private String convertInputStreamToString(InputStream inputStream) {
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String line = "";
String result = "";
try {
while ((line = br.readLine()) != null)
result += line;
br.close();
return result;
} catch (IOException e) {
e.printStackTrace();
return "Exception";
}
}
}