2017-11-24 3 views
-2

AndroidのボタンとTextViewでピン入力を行いたいと思います。 私はピンのためにTextviewを持っていて、ユーザが数字として押すための9つのボタンがあります。 LayoutAndroidで4つのボタンを押したときにコードを開始する方法

任意のヒントしてください:ユーザープレス4つのボタンは、文字(ボタンでボタン)で、私のTextView文字を変更したときに私が欲しいもの 、そしてここでは、コード

を開始するために4番目のボタンを入力する画像はありますか?ここで

私のコードです:

content_main.xml:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/white" 
app:layout_behavior="@string/appbar_scrolling_view_behavior" 
tools:context="com.group.digit.razvoj.appointment.MainActivity" 
tools:showIn="@layout/app_bar_main"> 


<LinearLayout 
    android:id="@+id/mainLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical"> 

    <LinearLayout 
     android:id="@+id/pinLayoutMain" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="right|center_vertical" 
     android:orientation="vertical" 
     android:paddingRight="@dimen/left_margin_pin"> 

     <LinearLayout 
      android:id="@+id/pinTvLayout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginBottom="@dimen/between_margin" 
      android:layout_marginTop="@dimen/between_margin" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/pinTv" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="@string/pin" 
       android:textColor="@android:color/black" 
       android:textSize="18sp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/passLayout" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:layout_marginBottom="50dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <TextView 
       android:id="@+id/pinEntry" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:text="****" 
       android:textColor="@android:color/black" 
       android:textSize="18sp" /> 

     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/firstRow" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginBottom="2dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/b1" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="1" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/b2" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="2" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/b3" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="3" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/secondRow" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginBottom="2dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/b4" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="4" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/b5" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="5" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/b6" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="6" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/sthirdRow" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_marginBottom="2dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <Button 
       android:id="@+id/b7" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="7" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/b8" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="8" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/b9" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="9" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 
     </LinearLayout> 

     <LinearLayout 
      android:id="@+id/forthow" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="2dp" 
      android:layout_weight="1" 
      android:orientation="horizontal"> 

      <Button 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="1" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/b0" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="0" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 

      <Button 
       android:id="@+id/bback" 
       android:layout_width="60dp" 
       android:layout_height="60dp" 
       android:layout_marginRight="2dp" 
       android:layout_weight="1" 
       android:background="@drawable/round_button" 
       android:gravity="center_vertical|center_horizontal" 
       android:text="-" 
       android:textColor="@color/black" 
       android:textSize="30sp" /> 
     </LinearLayout> 

    </LinearLayout> 

</LinearLayout> 

MainActivity.java:

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

    //init buttons 
    for (int i = 0; i < MAX_PIN_NUM; i++) { 
     buttonsPinWidget[i] = (Button) findViewById(buttonsPinId[i]); 
    } 

    pinentry = (TextView) findViewById(R.id.pinEntry); 

} 

答えて

1

あなたはスイッチで皆のボタンの1 onClickListenerを使用するようにすべきその中のケース。 スイッチケースブロックのすべてのケースで、1文字のTextViewを追加または削除する必要があります(削除ボタンがある場合)。 スイッチケースブロックの後、TextViewのテキスト長を確認します。それの長さが4に等しい場合は、承認やログインなどの操作を試みることができます。

申し訳ありません。

+0

どのようなボタンがどのような文字であるかを知る方法。 "1"ボタンをクリックすると、TextViewのどの位置にあるのか知る方法は? –

0

まずは非常に興味深い質問です。 私が考えることができる唯一の解決策は、(私はedittextでなければならないと思う)textviewの長さを常にチェックし、すべてのボタンのためにそのメソッドを追加するパブリックメソッドを作成することです。 textviewの長さが4になったら、必要なコードをトリガーします。 さらに詳しい説明が必要な場合はお知らせください

0
btn.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      String s=txtView.getText().toString(); 
      if(s.length()<3){ 
       s=s+btn.getText().toString(); 
       txtView.setText(""+s); 
      }else if(s.length()==3){ 
       s=s+btn.getText().toString(); 
       txtView.setText(""+s); 
       // write your code 
      } 
     } 
    }); 
関連する問題