Androidのプログラミング – 投稿 3: ボタンのClickイベントの取得
彼の非常に詳細な検討までの日数、Androidは文字を変更ボタンをクリックする方法を知りたいでせっかちですTextViewの. だから、この記事、私たちはのTextViewとEditTextのにイベントを操作するためのボタンを取得する方法を学びます. 我々はポストのプロジェクトで継続されます 2 タスクはTextViewには、我々はEditTextの中に入力した単語を表示するときに、ボタンをクリックする方法です.
[qads]
次のように私たちは、前日ビットインターフェースを見直し:
ボタンとのTextViewとEditTextのに操作できるようにするために、我々は彼らと一緒に操作するためのJavaコードのJavaコードにこれらの要素を接続する必要があります. javaのに接続するには, 各要素は持っている必要があります 1 イド. あなたはidは、各要素の識別番号であることを理解することができます. 当社は、以下のTextViewなどの要素にIDを設定します アンドロイド:ID =”@ + ID /テレビ”. それに応じて テレビ TextViewには、そのIDです. この後は、tvNameを設定する必要があります, tvPhone,… TextViewのテレビスタンド, 名前が名前です, 電話携帯電話です, すなわちTextViewには、名前と電話のTextViewを表示するように表示します. だから、私たちのコードは次のようになります:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" 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.nguyenvanquan7826.tut2texteditbutton.MainActivity"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter text here" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click me" /> </LinearLayout>
あなたは、コンポーネントのIDを設定したら, コードの実装を開始するために戻ってあなたを提出MainActivity.java.
この記事では、我々はすべての最初に触れているので、彼のJavaコードは少し導入すべきです. 現在、私たちのJavaコードは次のように:
package com.nguyenvanquan7826.tut2texteditbutton; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
以前に学んだピュアJavaとは異なり. 私たちは、それぞれの活動は、関数によって実行を開始するプログラムを開始する主な機能を持っていないのonCreate. ここで:
- super.onCreate(savedInstanceState); 現在継承AppCompatActivityのonCreate関数呼び出しであります.
- setContentView(R.layout.activity_main); 私たちのインターフェースの受注はactivity_main.xmlファイルです – 私たちの主なxmlファイルは、今まで、最初から操作されました. あなたが作成した場合 1 我々は絶対にこのAcitivity setContentViewコマンドのインターフェイスとして設定することができます/ resを/レイアウト内の他のxmlファイル、.
今、私たちは、プロセッサとのインターフェースに接続されている主要な部分を開始します. インターフェースを接続するには, 私たちは、型ボタンの対応する変数を宣言します, EditTextのVAのTextView. あなたは、次のコードを参照してください。:
package com.nguyenvanquan7826.tut2texteditbutton; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity { /* * khai bao cac bien view * */ private TextView tv; private EditText edit; private Button btn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // goi ham ket noi view connectView(); } /* * ket noi cac thanh phan view * */ private void connectView() { tv = (TextView) findViewById(R.id.tv); edit = (EditText) findViewById(R.id.edit); btn = (Button) findViewById(R.id.btn); } }
私たちはラインでアクションを必要とする変数を対応する引用した後、 14, 15, 16, 私たちは、関数のonCreate connectView呼び出します. ConnectView機能は、我々はインターフェイスに接続するために書き込む機能です. 私たちは関数を使用する要素を接続するには findViewById への送信のため R.id.xyz XYZは、我々は、XMLファイル内の要素に設定したIDです. ただし、この機能は、ビューのタイプを返します。 (ビューには、コンポーネントのすべてのタイプの父であります, すなわちのTextView, EditTextの, ボタン,… ビューから継承されています) だから我々は、上記のように、各要素の正確な型にキャストを必要とします.
だから、インターフェイスへの接続が行われますされ、. 今、私たちは呼び出すことにより、ボタンのイベントをキャプチャやって始めます setOnClickListener. 私たちは、キャプチャするために多くのイベントを持っています, しかし、私はあなたをご案内します 2 私は、人々が頻繁に使用する希望の最も一般的な方法.
方法 1: ゲームで逮捕
/* * ket noi cac thanh phan view * */ private void connectView() { tv = (TextView) findViewById(R.id.tv); edit = (EditText) findViewById(R.id.edit); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { doClickButton(); } }); } private void doClickButton() { String text = edit.getText().toString().trim(); tv.setText(text); edit.setText(""); }
より多くのあなたは、括弧でbtn.setOnClickListenerを書いて、書き込みがあります 新しいONC 提案ボックスが表示され、あなたが最初のものである選択します View.OnClickListener それはあります 1 自動的に関数のonClick用のコードを生成するためのインタフェース.
つまり、あなたがボタンをクリックすると、システムが呼び出します onClickの, それは我々が望んでいただけで何になりました, しかし、ここでEditTextのTextViewのテキストにそれを取るです. 私たちは、関数を記述し、onClickのdoClickButtonでそれを呼び出します. 機能doClickButtonで, 私たちは見ます 3 現在.
- テキストの最初の行は、変数に割り当てられたEditTextの文字列のテキストを取り出し、 (ToString関数は、我々はチェーンを取り出したものを有効にすることです, トリム機能は、先頭に空白を削除した場合に終了することです). したがって、私たち 関数をとることによってEditTextのテキストのgettext();
- 2行目は、我々は、機能のTextViewで上取得する必要があり、テキストブックであるのsetText(テキスト)
- 三行目, 私たちは、EditTextのテキストを削除しました.
今、あなただけでは果物を実行し、お楽しみください.
方法 2: 一度に多くのボタンへの行き方
あなたが気づいた場合, 方法です 1, すべてのボタンは、我々は次のようになります 1 自身のために、イベントセグメント. このように複数のボタンの場合 (ハンドヘルドコンピュータとしてVDとして) コードは非常に長く、不便になります. それでは、どのよう 2 このような場合に適して. 次のようにイベントのコードを編集することができます方法は、開始します.
/* * ket noi cac thanh phan view * */ private void connectView() { tv = (TextView) findViewById(R.id.tv); edit = (EditText) findViewById(R.id.edit); btn = (Button) findViewById(R.id.btn); btn.setOnClickListener(this); }
つまり、これは、関数setOnClickListenerに渡されていることを、我々は再び新しいOnClickListenerを作成しないことを意味します. しかし、今は、エラーが表示されます。. 単語の上にカーソルを置きます この, ここで、彼は失敗しました, 押し Altキー + 入る あなたは、ダイアログボックスがヒントを表示されます表示されます:
あなたは、行を選択します 2 た MainAcitvityがView.OnClickListenerを実装してください, 次のダイアログボックスが表示されます, あなたは[OK]を選択します.
システム・コードを実行する学生を待って、あなたは関数が表示されます 自発のonClick 機能と同等でのonCreate, 上記クラスラインより View.OnClickListenerを実装します. ここでは、それが全体のボタンの逮捕のonClickイベントを実行するように機能することができるので、全体のクラスがインタフェースのMainAcitivty例、View.OnClickListenerであることを理解します (または特定のビュー) setOnClickListener呼ばれています(この); だから我々は、ボタンを同時にたくさんのイベントを開始することができます. onClickの機能は持っている時に、我々はボタンをクリックし何を区別するために、 1 ビューを回します, 我々は区別しないものです. 我々は追加するとし 1 インタフェースボタンに加えて、EditTextの中のテキストを削除するには、次のように我々のコードは次のようになります:
インターフェイスコード
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:orientation="vertical" 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.nguyenvanquan7826.tut2texteditbutton.MainActivity"> <TextView android:id="@+id/tv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" /> <EditText android:id="@+id/edit" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="Enter text here" /> <Button android:id="@+id/btn" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click me" /> <Button android:id="@+id/btnClear" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Clear" /> </LinearLayout>
コードのJava.
package com.nguyenvanquan7826.tut2texteditbutton; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { /* * khai bao cac bien view * */ private TextView tv; private EditText edit; private Button btn; private Button btnClear; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); // goi ham ket noi view connectView(); } /* * ket noi cac thanh phan view * */ private void connectView() { tv = (TextView) findViewById(R.id.tv); edit = (EditText) findViewById(R.id.edit); btn = (Button) findViewById(R.id.btn); btnClear = (Button) findViewById(R.id.btnClear); // set on click btn.setOnClickListener(this); btnClear.setOnClickListener(this); } @Override public void onClick(View view) { switch (view.getId()) { case R.id.btn: doClickButton(); break; case R.id.btnClear: doClickButtonClear(); break; } } private void doClickButton() { String text = edit.getText().toString().trim(); tv.setText(text); edit.setText(""); } private void doClickButtonClear() { edit.setText(""); } }
今日はここで停止します. 私たちは、あなたが理解し、動作を開始するボタンの良いイベントを練習し、テキストを置くことができます願っています, TextViewとEditTextのからテキストを取得.
かわいいです, a làm cái Tut Máy tính cầm tay đi a 😀
Sẽ có bạn nhé.
大井, bay gio em muon nhap tu 1 screen roi xuat ra 1 screen khac thi lam nhu nao a? (E set lam 2 activity, 1 cai nhap, con cai xuat e chua biet lam kieu gi)
Bạn dùng Intent nhé. Khi startActivity thì dùng startActivityForResult. Có thể xem kỹ hơn tại đây: https://www.cachhoc.net/2016/07/14/lap-trinh-android-bai-8-intent-chuyen-doi-giua-cac-man-hinh/
sao mà giao diện trong điện thoại ảo của e thì chỗ button đè lên chỗ nhập text luôn? không có giống như hình anh minh họa. Cách khắc phục như thế nào hả anh?
Cách khắc phục là bạn code giao diện chứ không kéo thả 🙂
こんにちは陸軍. Rất vui được làm quen với bạn. Mình chưa biết gì ltrinh android. nhưng rất thích cái này. Đang ấp ủ làm 1 ứng dụng như sau. Bạn hướng dẫn giúp mình nhé:
Tạo nhiều button:
+ Button A: khi nhấn button này, điện thoại android sẽ gọi đến 1 số máy nào đó trong 3 tiếng chuông (hay 5s) rồi tắt, quá trình này lập đi lập lại cho đến khi mình nhấn tắt nút này. これ以上のショットまで繰り返し点滅のように
+ ボタンB: また、通話ボタンが、ノーショット, 相手側が電話、ボタンCをピックアップを待っています, D, Eが表示します (最初にCボタン,D,Eステータスが隠さ.
+ Cボタン, D ,Eは、数字ボタンで 1, 2, 3, 4… キーボード電話ので、. 最高経営責任者(CEO: プレスC、電話のキー電話番号を送信しているとき 1 聞くために電話.
ありがとう
ようこそ、, để làm được các việc đó bạn cứ search từ khóa theo bạn mô tả là được 🙂
Anh cho em hỏi là mình có thể ép kiểu đối tượng trong java mà hai đối tượng này cùng kế thừa từ 1 lớp đối tượng cha.Ví dụ như lớp đối tượng SVBach khoa và lớp đối tượng SV giao thông cùng là kế thừa từ lớp đối tượng sinhvien.Em muốn ép kiểu SV Giao thông sang SV BachKhoa
これはオフラインではありません.
すべての勉強 3 おじさん軍に感謝, プログラムを完了することを希望し、医師
あなたのプッシュボタンを押す場合は長く彼のように実行しながら、知っていますか
あなたは、イベントOnTouchをキャッチすることができます.
またはあまりにも
兄はへのボタンリンクにクリップをしたい電子電子を求め 1 Googleのページミリング、我々はS、A行う必要があります? 要望文からTL
あなたは、ここにしてください見ます: https://stackoverflow.com/questions/21973415/how-to-open-google-play-store-with-button-click
兄は私を助けました
例えば、あなたは答えA B C Dを持っています
Aおよび任意のB C Dはまだ答えを保持する子供.
私がお聞きしたい保持したときであります 1 プレスは、k個の先生異なる答えている回答
あなたが見るグーグル試しください: https://www.google.com/search?q=mutile+select+item+android&rlz=1C5CHFA_enVN787VN787&oq=mutile+select+item+android&aqs=chrome..69i57j0l3.10930j0j1&ソースID =クロム&すなわち= UTF-8
私はアンドロイドについて学ぶようになりました, vừa đọc mấy dòng dẫn ở đầu em đã nghĩ ngay ra là sinh viên trường mình là chủ trang web này rồi ^_^ liệu có phải do cùng 1 môi trường dạy nên có lối suy nghĩ giống nhau ko anh ^_^
Cái này thì ko rõ 🙂