Androidプログラミングの新機能で、PHPとJSONを使用してAndroidアプリからラズベリーパイに2つのeditText
フィールドのテキストを送信しようとしています。 すべてがうまくいき、データをデータベースで見ることができますが、唯一の問題はアプリでSENDボタンをクリックしても何もしないことです。しかし、SENDボタンの近くのどこかをクリックすると、データが送信されます。 activity_main.xml
で定義されたレイアウトファイルからonClickメソッドを使用しました。 ここに私のMainActivity.java
コードです:ボタンがAndroidアプリで正常に動作しない
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();
}
}
}
マイactivity_main.xml
ファイル:
button.setOnClickListener(this);
は、その後、あなたの活動にView.OnClickListener
を実装する:あなたは、ボタンのクリックリスナを登録する必要があり
<?xml version="1.0" encoding="utf-8"?>
<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:onClick="Send"
android:nestedScrollingEnabled="false">
<EditText
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentEnd="true"
android:layout_alignParentLeft="true"
android:layout_alignParentRight="true"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:hint="@string/name" />
<EditText
android:id="@+id/partNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignEnd="@+id/name"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_alignRight="@+id/name"
android:layout_below="@+id/name"
android:hint="@string/part_number" />
<Button
android:id="@+id/send"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/partNumber"
android:layout_centerHorizontal="true"
android:layout_marginTop="36dp"
android:text="@string/send"
android:onClick="Send" />
</RelativeLayout>
最初にプライベートビューを削除する。この行 – Pavya
ボタンの 'onClickListener'はどこにありますか? –
onclickプロパティマップのSendメソッドを想定します。 activity_mainレイアウトを共有する – alrama