Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/203.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 试图将数据发送到phpmyadmin时应用程序崩溃_Android_Onclicklistener - Fatal编程技术网

Android 试图将数据发送到phpmyadmin时应用程序崩溃

Android 试图将数据发送到phpmyadmin时应用程序崩溃,android,onclicklistener,Android,Onclicklistener,当我尝试以下代码调用onclick方法时,我的应用程序崩溃 全部活动: public class UserCom extends ListActivity implements OnClickListener { private ProgressDialog m_ProgressDialog = null; private ArrayList<Order> m_orders = null; private OrderAdapter m_adapter; private Runnab

当我尝试以下代码调用onclick方法时,我的应用程序崩溃

全部活动:

public class UserCom extends ListActivity implements OnClickListener {

private ProgressDialog m_ProgressDialog = null;
private ArrayList<Order> m_orders = null;
private OrderAdapter m_adapter;
private Runnable viewOrders; 
private Thread t;

String valcom;
String valnm;
EditText editText1;
EditText editText2;
URL url;
InputStream is;
HttpURLConnection h;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.user_com);

    View subBTN  = findViewById(R.id.button1);
    subBTN.setOnClickListener(this);

    m_orders = new ArrayList<Order>();
    this.m_adapter = new OrderAdapter(this, R.layout.listlook, m_orders);
            setListAdapter(this.m_adapter);

    viewOrders = new Runnable(){
        @Override
        public void run() {
            getOrders();
        }
    };
Thread thread =  new Thread(null, viewOrders, "MagentoBackground");
    thread.start();
    m_ProgressDialog = ProgressDialog.show(UserCom.this,    
          "Please wait...", "Retrieving data ...", true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.user_com, menu);
    return true;
}

public void onClick(View v) {

    switch (v.getId()) {
        case R.id.button1:
            sendTextToDB();
            break;
    }
    }

private static String readAll(Reader rd) throws IOException {
    StringBuilder sb = new StringBuilder();
    int cp;
    while ((cp = rd.read()) != -1) {
      sb.append((char) cp);
        }
    return sb.toString();
}

public static JSONArray readJsonFromUrl(String url) throws IOException, JSONException {
InputStream is = new URL(url).openStream();
try {
  BufferedReader rd = new BufferedReader(new InputStreamReader(is,  Charset.forName("UTF-8")));
  String jsonText = readAll(rd);
  JSONArray json = new JSONArray(jsonText);
  return json;
} finally {
  is.close();
}
}

private void getOrders(){

    m_orders = new ArrayList<Order>();
    JSONArray json; 
    JSONObject jo;
    try{

        json = readJsonFromUrl("http://10.0.2.2/HB/hikebuddy.php?function=usercomm");

        jo = (JSONObject) json.get(0); 

        Order o1 = new Order();
        o1.setOrderName(jo.get("comment").toString());
        o1.setOrderStatus(jo.get("name").toString());
//            Order o2 = new Order();
//          o2.setOrderName("SF Advertisement");
 //        o2.setOrderStatus("Completed");
        m_orders.add(o1);
  //      m_orders.add(o2);
           Thread.sleep(1000);
        Log.i("ARRAY", ""+ m_orders.size());
      } catch (Exception e) {
        Log.e("BACKGROUND_PROC", e.getMessage());
      }
      runOnUiThread(returnRes);
  }

private Runnable returnRes = new Runnable() {

    @Override
    public void run() {
        if(m_orders != null && m_orders.size() > 0){
            m_adapter.notifyDataSetChanged();
            for(int i=0;i<m_orders.size();i++)
            m_adapter.add(m_orders.get(i));
        }
        m_ProgressDialog.dismiss();
        m_adapter.notifyDataSetChanged();
    }
  };

  private class OrderAdapter extends ArrayAdapter<Order> {

      private ArrayList<Order> items;

      public OrderAdapter(Context context, int textViewResourceId, ArrayList<Order> items) {
              super(context, textViewResourceId, items);
              this.items = items;
      }
      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
              View v = convertView;
              if (v == null) {
                  LayoutInflater vi = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                  v = vi.inflate(R.layout.listlook, null);
              }
              Order o = items.get(position);
              if (o != null) {
                      TextView tt = (TextView) v.findViewById(R.id.txtl1);
                      TextView bt = (TextView) v.findViewById(R.id.txtl2);
                      if (tt != null) {
                            tt.setText(o.getOrderName());                            }
                      if(bt != null){
                            bt.setText(o.getOrderStatus());
                      }
              }
              return v;
      }
 }




public void sendTextToDB() {

valcom = editText1.getText().toString();
valnm = editText2.getText().toString(); 

    t = new Thread() {
public void run() {
try {
url = new URL("http://10.0.2.2/HB/hikebuddy.php?function=setcomm&comment="+valcom+"&name="+valnm);
h = (HttpURLConnection)url.openConnection();

if( h.getResponseCode() == HttpURLConnection.HTTP_OK){
is = h.getInputStream();

  // do something with the data here
  }else{
is = h.getErrorStream();

}

  h.disconnect();

} catch (Exception e) {
// TODO Auto-generated catch block
  e.printStackTrace();
Log.d("Test", "CONNECTION FAILED 1");
}
}
};

t.start();

}
}
公共类UserCom扩展ListActivity实现OnClickListener{
private ProgressDialog m_ProgressDialog=null;
private ArrayList m_orders=null;
专用OrderAdapter m_adapter;
私人可运行视图命令;
私有线程t;
字符串valcom;
弦valnm;
编辑文本编辑文本1;
编辑文本编辑文本2;
网址;
输入流为;
httpurlh;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.user_com);
视图子BTN=findViewById(R.id.button1);
subBTN.setOnClickListener(此);
m_orders=new ArrayList();
this.m_adapter=新订单适配器(this,R.layout.listlook,m_订单);
setListAdapter(此.m_适配器);
viewOrders=new Runnable(){
@凌驾
公开募捐{
getOrders();
}
};
线程线程=新线程(null,viewOrders,“MagentoBackground”);
thread.start();
m_ProgressDialog=ProgressDialog.show(UserCom.this,
“请稍候…”,“正在检索数据…”,为true);
}
@凌驾
公共布尔onCreateOptions菜单(菜单){
//为菜单充气;这会将项目添加到操作栏(如果存在)。
getMenuInflater().充气(R.menu.user\u com,菜单);
返回true;
}
公共void onClick(视图v){
开关(v.getId()){
案例R.id.button1:
sendTextToDB();
打破
}
}
私有静态字符串readAll(读取器rd)引发IOException{
StringBuilder sb=新的StringBuilder();
int-cp;
而((cp=rd.read())!=-1){
sb.追加((char)cp);
}
使某人返回字符串();
}
公共静态JSONArray readJsonFromUrl(字符串url)引发IOException,JSONException{
InputStream is=新URL(URL).openStream();
试一试{
BufferedReader rd=新的BufferedReader(新的InputStreamReader(is,Charset.forName(“UTF-8”));
字符串jsonText=readAll(rd);
JSONArray json=新的JSONArray(jsonText);
返回json;
}最后{
is.close();
}
}
私人订单(){
m_orders=new ArrayList();
JSONArray-json;
JSONObject jo;
试一试{
json=readJsonFromUrl(“http://10.0.2.2/HB/hikebuddy.php?function=usercomm");
jo=(JSONObject)json.get(0);
订单o1=新订单();
o1.setOrderName(jo.get(“comment”).toString());
o1.setOrderStatus(jo.get(“name”).toString());
//订单o2=新订单();
//o2.setOrderName(“SF广告”);
//o2.设置订单状态(“完成”);
m_订单。添加(o1);
//m_订单。添加(o2);
睡眠(1000);
Log.i(“数组”,“m_orders.size());
}捕获(例外e){
Log.e(“BACKGROUND_PROC”,e.getMessage());
}
runOnUiThread(returnRes);
}
private Runnable returnRes=new Runnable(){
@凌驾
公开募捐{
if(m_orders!=null&&m_orders.size()>0){
m_adapter.notifyDataSetChanged();

对于(int i=0;i调用
EditText.getText()
方法之前忘记初始化EditText,因此在
setContentView
之后初始化为:

EditText editText1;
EditText editText2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.user_com);

     editText1=(EditText)findViewById(R.id.your_edittextid);
     editText2=(EditText)findViewById(R.id.your_edittextid);
    .....

确保您已在AndroidManifest中添加了internet权限,并在应用程序因问题而崩溃以获取更多帮助时发布堆栈跟踪。添加了internet权限后,应用程序已调用数据,现在我必须发送数据。不确定堆栈跟踪是什么,但我发布了logcat错误。发布您的完整活动。@dkgeld:行号是多少UserCom类中的193行?第193行是:valcom=editText1.getText().toString();真不敢相信我忘记了!谢谢:)