Android错误日志、清单中的活动、致命异常:AsyncTask#1
另一个安卓问题是,我试图将应用程序上的edittext中的数据发布到服务器上的脚本中,但遇到了一个又一个错误。这是我现在拥有的Android错误日志、清单中的活动、致命异常:AsyncTask#1,android,post,error-handling,android-asynctask,android-manifest,Android,Post,Error Handling,Android Asynctask,Android Manifest,另一个安卓问题是,我试图将应用程序上的edittext中的数据发布到服务器上的脚本中,但遇到了一个又一个错误。这是我现在拥有的 package com.college.slimandsave; import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.apache.http.HttpResponse; import org.apache.http.NameValuePai
package com.college.slimandsave;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.ProgressBar;
import android.widget.Toast;
public class FoodSearchActivity extends Activity implements OnClickListener{
public ListView list;
public Button btnSearch;
private static EditText txtFoodSearch;
private ProgressBar pb;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_food_search);
txtFoodSearch = (EditText)findViewById(R.id.txtFoodSearch);
// txtFoodSearch = txtFoodSearch.getText().toString();
btnSearch = (Button)findViewById(R.id.btnSearch);
// btnSearch.setOnClickListener(new View.OnClickListener() {
pb =(ProgressBar)findViewById(R.id.progressBar1);
pb.setVisibility(View.GONE);
btnSearch.setOnClickListener(this);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu); // check this
return true;
}
public void onClick(View v) {
if(txtFoodSearch.getText().toString().length()<1) {
Toast.makeText(this , "please enter something", Toast.LENGTH_LONG).show();
}else{
pb.setVisibility(View.VISIBLE);
new MyAsyncTask().execute(txtFoodSearch.getText().toString());
}
}
private class MyAsyncTask extends AsyncTask<String, Integer, Double>{
String fsearch = txtFoodSearch.getText().toString();
@Override
protected Double doInBackground(String... params) {
postData(params[0]);
return null;
}
protected void onPostExecute(Double result) {
pb.setVisibility(View.GONE);
Toast.makeText(getApplicationContext(), "search sent", Toast.LENGTH_LONG).show();
}
protected void onProgressUpdate(Integer...progress) {
pb.setProgress(progress[0]);
}
public void postData(String fsearch) {
//create new http client
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("192.168.133.84/SlimandSave/try.php");
try {
//add data
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
nameValuePairs.add(new BasicNameValuePair("myHttpData", fsearch));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
//execute HTTP post request
HttpResponse response = httpclient.execute(httppost);
} catch (ClientProtocolException e) {
} catch (IOException e) {
}
}
}
}
编辑。。。。。以上是我的最新代码和错误日志。在php方面,我只有一个fileputcontents要写入文本文件
编辑。。。在ip地址之前添加http://似乎有效,我使用txtFoodSearch.getText().toString()而不是namevalue对中的fSearch字符串。
SearchActivity
不是活动类
你有
Intent intSearch = new Intent(FoodSearchActivity.this, SearchActivity.class);
startActivity(intSearch);
它是一个异步任务类
public static class SearchActivity extends AsyncTask<String, Void, String> {
你的doInbackground
什么都不做
您在postData(视图v)
中有网络操作,应该进入doInbackground
你也有
<activity android:name="com.college.slimandsave.FoodSearchActivity$SearchActivity" >
</activity>
应该将其删除。谢谢,基于以下内容,我想我会回到今天开始进行更改之前的状态。我已经找到了一个很好的教程,类似于我想要达到的目标,所以我将更密切地关注这一点。
public static class SearchActivity extends AsyncTask<String, Void, String> {
new SearchActivity().execute(params);
<activity android:name="com.college.slimandsave.FoodSearchActivity$SearchActivity" >
</activity>