2016-03-27 10 views
-1

アンドロイドスタジオを使ってこの単純なアプリを作成しました。これはyのx%を計算するはずです。アンドロイドスタジオウィンドウのコードにエラーは表示されませんが、アプリのボタンをクリックするとクラッシュします。私はコーディングに新しいです、私はどんな助けにも感謝します。ボタンをクリックしてAndroidアプリがクラッシュするのはなぜですか?

package com.sabri.myapplication; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

TextView textView; 
EditText percentText; 
EditText numberText; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 


    Button button = (Button) findViewById(R.id.button); 
    if (button == null) throw new AssertionError(); 
    button.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View view) { 
      float percentage = Float.parseFloat(percentText.getText().toString()); 
      float dec = percentage/100; 
      float total = dec * Float.parseFloat(numberText.getText().toString()); 
      textView.setText(Float.toString(total)); 

     } 
    }); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 

    //noinspection SimplifiableIfStatement 
    if (id == R.id.action_settings) { 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 
} 
+0

manifest.xmlとactivity_main.xmlを送ることができます –

+1

'EditText'や' TextView'変数を初期化することはないので、 'getText()'や 'setText()'など、結果は 'NullPointerException'になります。 –

答えて

0

私はNullPointerExceptionエラーが発生していると仮定しています。 percentTextnumberText変数は初期化されていません。

はあなたのボタンの変数

textView = (TextView)findViewById(R.id.textView); 
numberText = (EditText)findviewbyid(R.id.numberText); 
percentText = (EditText)findviewbyid(R.id.percentText); 

は常にあなたは彼らと/に何もしようとする前に、変数が初期化されていることを確認して割り当てるあなたのonCreate()方法でこれを入れてみてください。新しい方法intializeViewVariables()を作成することをお勧めします。Viewの変数をすべて初期化し、その方法をonCreate()で呼び出すだけです。

クラッシュ/コンパイラのエラーに関するヘルプを求めている場合は、エラーメッセージを投稿に含めてください。

+1

@MikeM。あなたは絶対に正しい、私の悪い。 –

関連する問題