2012-02-22 16 views
1

異なるEditTextビュー間で数学を達成する方法を理解する助けが必要です。私は誰かに私にコードを書いてもらうことを求めていませんが、これを行うために何が関係しているのかを説明しています。editTextとの間のプログラミング数学の助けが必要

私はこの写真を投稿したかったのですが、私はできない新しいユーザーとして投稿しました。基本的には、幅、長さ、Eaveの高さ、ピッチのEditTextがあります。

私は、私はちょうどそれらを動作させるために関与舞台裏で数学をプログラムする方法を知らないすべてのTextViewsのためのIDを持っています。私は数学を実行するために必要な方程式を、どこにどのように置くか分からず、それらをJavaに入れます。

基本的に、上位4つのボックスのそれぞれに数字を入力する必要があります。私は "SQFT"ボックスに表示される答えを生成する方程式を使用する必要があります。また、ユーザーはコストボックスに数字を入力し、別のTextViewに表示する必要がある「合計」を生成します。

すべてのヘルプは、それは私が始めるためのチュートリアルの方向に私を指すようになっても、高く評価されるだろう。ご協力いただきありがとうございます。ただ、私は以下の、使用する必要が数学の種類表示する

は私がcalulateするために、Excelで使用する式です。

(length+width)*(Eave+1)*2 + (((width/2)/12*Pitch)*(width/2)*2) 
+0

ませんdownvote。あなたの質問から、あなたはプログラミングの初心者である(またはJava/Android開発の可能性があります)ようです。だから、ここではすべてがあなたに説明することはできません。 [公式のAndroidドキュメント](http://developer.android.com)および/または[Javaドキュメント](http://docs.oracle.com/javase/tutorial/getStarted/index.html)をお読みください。そして、[StackOverflow FAQs](http://stackoverflow.com/faq)も読んでください。 – Mudassir

+0

ありがとう、私はアンドロイドのドキュメントを何度も見てきました。私はすべてが説明されて欲しいwasnt。私が欲しかったのは、私を始めさせる方向に向けることでした。私はAndroidの初心者であり、初心者が質問を投稿できないことを正直に知らなかった。それについては申し訳ありませんが、みんな初心者ではありませんでした。 – user1224807

+0

初心者はここに質問を投稿できます。しかし、あなたの質問が特定のプログラミング問題であることを確認してください。いくつかのget-me-some-tutorialやhow-to-do-thisのようなものではありません。 Androidについて知らない場合は、[Hello World。](http://developer.android.com/resources/tutorials/hello-world.html)チュートリアルを参照してください。あなたがすでにJavaを知っているなら、Androidはとても簡単に学べます。あなたがどこにいても問題があれば、コミュニティが必ずあなたを助けます。 – Mudassir

答えて

1

私は、ユーザーが計算したり、どのようにそれを提示することを開始できるようにする方法を、実際に数学の計算を行う方法、EditTextsに入力された数値を抽出する方法がわからない場合はわかりません。

私は2 EditTextsを持っている小さなデモ、および入力された数字の合計を表示するのTextViewを作成しました。ユーザーは、計算を実行するためにボタンを押す必要はありません。ユーザーがテキストを更新するたびに自動的に実行されます(これはあなたが望むものと仮定しています)。

このコードを注意してください、それは内部の匿名クラスなどの多くを使用していますが、それはこれを行う方法の仕組みを実証することになって、良いコードではありません。

これはmain.xmlレイアウトファイルです:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" > 

    <EditText 
     android:id="@+id/a" 
     android:hint="input a" 
     android:inputType="number" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:minWidth="60dp"/> 
    <EditText 
     android:id="@+id/b" 
     android:hint="input b" 
     android:inputType="number" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:minWidth="60dp"/> 
    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" 
     android:text="a+b = " /> 
    <TextView 
     android:id="@+id/total" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_margin="10dp" /> 

</LinearLayout> 

そして、これは、サンプルの活動です:

package com.example; 

import android.app.Activity; 
import android.os.Bundle; 
import android.text.Editable; 
import android.text.TextWatcher; 
import android.util.Log; 
import android.widget.EditText; 
import android.widget.TextView; 

public class SumActivity extends Activity 
{ 
    private int a; 
    private int b; 
    private TextView totalOutput; 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     EditText inputA = (EditText) findViewById(R.id.a); 
     EditText inputB = (EditText) findViewById(R.id.b); 
     totalOutput = (TextView) findViewById(R.id.total); 
     inputA.addTextChangedListener(new TextChangedListener() 
     { 

      @Override 
      public void numberEntered(int number) 
      { 
       a = number; 
       updateTotal(); 
      } 
     }); 
     inputB.addTextChangedListener(new TextChangedListener() 
     { 

      @Override 
      public void numberEntered(int number) 
      { 
       b = number; 
       updateTotal(); 
      } 
     }); 
    } 

    private void updateTotal() 
    { 
     int total = a + b; // This is where you apply your function 
     totalOutput.setText("" + total); // need to do that otherwise int will 
              // be treated as res id. 
    } 

    private abstract class TextChangedListener implements TextWatcher 
    { 

     public abstract void numberEntered(int number); 

     @Override 
     public void afterTextChanged(Editable s) 
     { 
      String text = s.toString(); 
      try 
      { 
       int parsedInt = Integer.parseInt(text); 
       numberEntered(parsedInt); 
      } catch (NumberFormatException e) 
      { 
       Log.w(getPackageName(), "Could not parse '" + text + "' as a number", e); 
      } 
     } 

     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) 
     { 
     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) 
     { 
     } 
    } 

} 
+0

Savvas、ありがとう。これは大きな助けになります。私はこれに取り組んで、私が思いつくものを見ていきます。 – user1224807

+0

おそらく既に知っているように、これは完全に機能しました。サンプルプログラムを作成し、2つのEditTextボックスを追加しました。私は数式を変更し、それは完全に働いた。今私は実際のプロジェクトでこれを使用するだけです。これは、メインレイアウトとは異なるレイアウトでEditTextビューを操作する必要があります。私のメインレイアウトでは、ユーザーがクリックしてこのレイアウトに移動するボタンがあります。 Javaコードのどこにこの新しいコードを記述しますか?すでにそこにあるすべてのものの下にあって、新しいパブリッククラスを開始する必要がありますか?私はこの質問が理にかなってほしい。あなたの助けをもう一度ありがとう。 – user1224807

+0

あなたが私があなたについて話していることをよりよく理解したいのであれば、リンクをチェックすることができます...これは私がstackoverflowに投稿する前に始めたところです。 [リンク](http://www.tnbforum.com/viewtopic.php?f=150&t=20834&p=125833#p125833) – user1224807

関連する問題