Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/180.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
Java 按钮未按预期在我的Android应用程序中工作_Java_Android - Fatal编程技术网

Java 按钮未按预期在我的Android应用程序中工作

Java 按钮未按预期在我的Android应用程序中工作,java,android,Java,Android,我是Android编程新手,我正在尝试使用PHP和JSON将两个editText字段中的文本从我的Android应用程序发送到raspberry pi。 一切正常,数据可以在数据库中查看,但唯一的问题是当我点击应用程序中的发送按钮时,它什么也不做。但当我点击发送按钮附近的任何地方时,它就会发送数据。我使用了activity\u main.xml中定义的布局文件中的onClick方法。 这是我的MainActivity.javacode: public class MainActivity

我是Android编程新手,我正在尝试使用PHP和JSON将两个
editText
字段中的文本从我的Android应用程序发送到raspberry pi。 一切正常,数据可以在数据库中查看,但唯一的问题是当我点击应用程序中的发送按钮时,它什么也不做。但当我点击发送按钮附近的任何地方时,它就会发送数据。我使用了
activity\u main.xml
中定义的布局文件中的onClick方法。 这是我的
MainActivity.java
code:

    public class MainActivity extends AppCompatActivity {

    private ProgressDialog pDialog;

    JSONParser jsonParser = new JSONParser();

    EditText editText;
    EditText editText2;
    Button button;
    private View view;

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

        editText = (EditText) findViewById(R.id.name);
        editText2 = (EditText) findViewById(R.id.partNumber);
        button = (Button) findViewById(R.id.send);
    }

    public void Send(View view) {
        this.view = view;
        new Create_Part().execute();
    }

    class Create_Part extends AsyncTask<String, String, String> {
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Sending part to the database...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        @SuppressWarnings("WrongThread")
        @Override
        protected String doInBackground(String... args) {
            String String_name = editText.getText().toString();
            String Int_Part = editText2.getText().toString();

            List<NameValuePair> params = new ArrayList<>();
            params.add(new BasicNameValuePair("Name", String_name));
            params.add(new BasicNameValuePair("part_nr", Int_Part));

            JSONObject json = jsonParser.makeHttpRequest("http://192.168.2.1/db_create.php", "POST", params);

            try {
                int success = json.getInt("success");

                if (success == 1) {
                    finish();
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }

            return null;
        }

        protected void onPostExecute(String file_url) {
            pDialog.dismiss();
        }
    }
}

您需要为按钮注册单击侦听器:

button.setOnClickListener(this);
然后对您的活动实施
View.OnClickListener

public class MainActivity extends AppCompatActivity implements View.OnClickListener {
  @Override public void onClick(View v) {
    new Create_Part().execute();
  }
}
你可以这样-

    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {              

               new Create_Part().execute();                 

            }
        }
    });

希望它能对您有所帮助。

从您的根目录中删除
android:onClick=“Send”
。当您单击按钮以外的任何位置时,实际上是在单击活动中的根布局及其调用
Send(View-View)
方法

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.dipankarroy.rpitoandroidmessengerapp.MainActivity"
android:nestedScrollingEnabled="false">


首先删除私有视图;此行按钮的
onClickListener
在哪里?假设onclick属性映射发送方法。共享您的activity\u main布局我已添加activity\u main.xml文件。我使用了
publicsvoidsend(View-View)
方法。告诉我该怎么做。这表明方法调用可能会产生java.lang.NullPointerException警告
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.dipankarroy.rpitoandroidmessengerapp.MainActivity"
android:nestedScrollingEnabled="false">