2016-09-10 3 views
-2

ユーザーが入力した任意の数の乗算表を生成しようとしています。私はアプリケーションのためのインタフェースを開発しましたが、論理部分(コーディング)をどこから始めるべきか理解できません。私が望むのは、ユーザがEditTextに数字を入力した後、TextView(id:printArea)が画像2で与えられた形式で入力番号の表を表示することです。 printAreaと一部と私が代わりに使用するのか分からない]乗算表レイアウトの作成

<?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" 
    tools:context=".MainActivity" 
    android:weightSum="1"> 

    <LinearLayout 

     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:id="@+id/textView1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginBottom="16dp" 
      android:text="Please Enter a Number: " 
      android:textSize="20sp" /> 

     <EditText 
      android:id="@+id/num" 
      android:layout_width="90dp" 
      android:layout_height="wrap_content" 
      android:layout_alignParentStart="true" 
      android:layout_marginLeft="30dp" 
      android:textSize="20sp" /> 

    </LinearLayout> 


    <Button 
     android:id="@+id/calculate" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_alignParentStart="true" 
     android:layout_below="@+id/log" 
     android:onClick="submitNumber" 
     android:text="Get Table" /> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="1.0" 
    android:id="@+id/printArea" /> 

    <LinearLayout 

     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/clear" 
      android:layout_width="125dp" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="2dp" 
      android:layout_marginRight="1dp" 
      android:text="Clear" /> 

     <Button 
      android:id="@+id/credits" 
      android:layout_width="125dp" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="1dp" 
      android:layout_marginRight="1dp" 
      android:text="Credits" /> 

     <Button 
      android:id="@+id/exit" 
      android:layout_width="125dp" 
      android:layout_height="wrap_content" 
      android:layout_marginLeft="1dp" 
      android:layout_marginRight="2dp" 
      android:text="Exit" /> 

    </LinearLayout> 

</LinearLayout> 

とMainActivity.javaは次のとおりです。

package com.example.tara.multiplicationtable; 


import android.content.Intent; 
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 { 

    EditText num; 
    Button credits; 
    Button calculate; 
    Button clear; 
    Button exit; 
    TextView printArea; 

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


     num = new EditText(this); 
     clear = new Button(this); 
     calculate = new Button(this); 
     credits = new Button(this); 
     calculate = new Button(this); 
     printArea = new TextView(this); 

     num = (EditText) findViewById(R.id.num); 

     credits = (Button) findViewById(R.id.credits); 
     clear = (Button) findViewById(R.id.clear); 
     exit = (Button) findViewById(R.id.exit); 
     printArea = (TextView) findViewById(R.id.printArea); 


     calculate = (Button) findViewById(R.id.calculate); 

     calculate.setOnClickListener(new View.OnClickListener() { 
      public void onClick(View v) { 

       //change the integer value into string 
       int num1 = Integer.parseInt(num.getText().toString()); 

       // Perform action on click 
       for (int i = 1; i <= 10; i++) { 

        printArea.setText(num1 + "X" + i + "=" + i * num1); 


       } 
      } 
     }); 

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

       num.setText(""); 
      } 
     }); 
     credits.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent i = new Intent(MainActivity.this, Credits.class); 
       startActivity(i); 
      } 
     }); 
     exit.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       finish(); 
       System.exit(0); 
      } 
     }); 
    } 

} 

アプリケーションが起動されたとき、それはこのThe initial state of application

のように示さなければならないと私はしたいですアプリケーションがthiのようなテーブルを表示するようにするユーザー入力が2の場合はThe Final Result

+1

通常のJavaではどうしますか? forループでテーブルを印刷しますか? Androidでも全く同じことができます。 System.outの代わりにTextViewに書き出し、ボタンをクリックするとEditTextから入力を取得するだけです –

答えて

0

は私が構築するために想像乗算表を構築するために使用されるコードです。 activity_main.xmlファイルのコードを次のようになります。

<?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" 
    tools:context=".MainActivity"> 

    <LinearLayout 

     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <TextView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_marginEnd="1dp" 
      android:layout_marginStart="2dp" 
      android:text="@string/Enter_number" 
      android:textSize="16sp" /> 

     <EditText 
      android:id="@+id/num" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_marginEnd="2dp" 
      android:layout_marginStart="1dp" 
      android:digits="" 
      android:hint="@string/hidden_text" 
      android:inputType="number" 
      android:maxLength="3" 

      android:textSize="16sp" /> 

    </LinearLayout> 


    <Button 
     android:id="@+id/calculate" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:text="@string/calculate" 
     android:imeOptions="actionDone" 
     android:textSize="16sp"/> 
    <!--android:onClick="submitNumber"--> 


    <TextView 
     android:id="@+id/printArea" 
     android:layout_width="match_parent" 
     android:layout_height="0dp" 
     android:layout_weight="1" 
     android:textSize="20sp" 
     android:background="@drawable/backimage" /> 

    <LinearLayout 

     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <Button 
      android:id="@+id/clear" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_marginEnd="1dp" 
      android:layout_marginStart="2dp" 
      android:textSize="16sp" 
      android:text="@string/clear" 
      /> 

     <Button 
      android:id="@+id/credits" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_weight="1" 
      android:layout_marginEnd="1dp" 
      android:layout_marginStart="1dp" 
      android:textSize="16sp" 
      android:text="@string/credits" /> 

     <Button 
      android:id="@+id/exit" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_marginEnd="2dp" 
      android:layout_marginStart="1dp" 
      android:layout_weight="1" 
      android:textSize="16sp" 
      android:text="@string/exit" /> 

    </LinearLayout> 

</LinearLayout> 

コードMainActivity.javaファイルのは次のようになります。

package com.example.tara.multiplicationtable; 
 

 

 
import android.content.Intent; 
 
import android.support.v7.app.AppCompatActivity; 
 
import android.os.Bundle; 
 
import android.view.View; 
 
import android.view.WindowManager; 
 
import android.widget.Button; 
 
import android.widget.EditText; 
 
import android.widget.TextView; 
 
import android.widget.Toast; 
 

 

 
public class MainActivity extends AppCompatActivity { 
 

 
    EditText num; 
 
    Button credits; 
 
    Button calculate; 
 
    Button clear; 
 
    Button exit; 
 
    TextView printArea; 
 

 
    //private static final String result = MainActivity.class.getSimpleName(); 
 

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

 
     num = new EditText(this); 
 
     clear = new Button(this); 
 
     calculate = new Button(this); 
 
     credits = new Button(this); 
 
     calculate = new Button(this); 
 
     printArea = new TextView(this); 
 

 
     num = (EditText) findViewById(R.id.num); 
 
     credits = (Button) findViewById(R.id.credits); 
 
     clear = (Button) findViewById(R.id.clear); 
 
     exit = (Button) findViewById(R.id.exit); 
 
     calculate = (Button) findViewById(R.id.calculate); 
 
     printArea = (TextView) findViewById(R.id.printArea); 
 

 
     calculate.setOnClickListener(new View.OnClickListener() { 
 
      // Perform action on Get Table Button click 
 
      public void onClick(View v) { 
 

 

 
       if (num.getText().length() == 0){ 
 
        printArea.setText(R.string.err_msg); 
 
        } 
 

 
       else { 
 
        //change the integer value into string 
 
        printArea.setText(""); 
 
        int num1 = Integer.parseInt(num.getText().toString()); 
 
        String result; 
 

 
        for (int i = 1; i <= 10; i++) { 
 
         result = (num1 + "  X  " + i + "  =  " + i * num1); 
 
         printArea.append("\n" + result); 
 
        } 
 

 

 
       } 
 
      } 
 

 
     }); 
 

 
     clear.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View v) { 
 
       num.setText(""); 
 
       printArea.setText(""); 
 
      } 
 
     }); 
 
     credits.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View v) { 
 
       startActivity(new Intent(MainActivity.this, Credits.class)); 
 
      } 
 
     }); 
 

 

 

 
     exit.setOnClickListener(new View.OnClickListener() { 
 
      @Override 
 
      public void onClick(View v) { 
 
       Toast.makeText(MainActivity.this, "Good Bye, User!", Toast.LENGTH_SHORT).show(); 
 
       finish(); 
 

 
      } 
 
     }); 
 
    } 
 

 
}

あなたの指導のために皆に感謝します。

0

Listviewを作成し、そのアダプタでテーブルデータを追加します。このような メイクアダプタのレイアウト:ここで

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="2"   /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="*" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="2" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="=" /> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="4" />