2017-10-04 20 views
0

Androidスタジオを使用して私のダイスローラープロジェクトをAndroidに移植しようとしましたが、コントローラ値のほとんどがアンドロイドウィジェット対応のものに置き換えられました。ウィジェットの値を適切に解析してIntにする方法私はそれらの左のコメントを整列してマークしました。問題のアンドロイドウィジェットをintに解析

修飾子はのEditText
結果は、私は多くの組み合わせを試してみましたのTextView

であり、これは最も最近です。それは純粋なJavaだったときに働い 1は.getValue().toString().trim()だったが、これは、なぜ私が.getValueを使用することはできませんか?

public void onStart() 
{ 
    super.onStart(); 
    percentile.setOnClickListener(new View.OnClickListener() 
    { 
    @Override 
    public void onClick (View v) 
    { 
     { 
      //issue is here 
      int total = Nat20_core.roll10(cumulative.isChecked(), 
         Integer.parseInt (String.valueOf(modifier)), 
         Integer.parseInt(String.valueOf(result))); 
      //end issue 
      result.setText(String.valueOf(total)); 
     } 
     } 
    }); 
} 

はのEditTextとのTextViewで

+0

あなたが直面している問題は何ですか? –

+0

しばらく時間をとり、[this](https://stackoverflow.com/help/how-to-ask)を確認してから、質問をフォーマットしてください。 – Ibo

+0

質問を再構成しました。 – K1tfox

答えて

0

これのEditTextとのTextViewウィジェットのための.getValue()方法がないためです。

のEditTextのために、あなたはEditable返しgetText()を使用することができます。だから、あなたはtoString()を使用して、そこから文字列を取得する必要があります。だから、あなたが使用する必要があります:

modifier.getText().toString(); 

TextViewのために、あなたはCharSequenceを返すgetText()を使用することができます。また、toString()を使用して文字列を取得する必要があります。だから、あなたも上記の行を使用することができますに

int total = Nat20_core.roll10(cumulative.isChecked(), 
         Integer.parseInt (String.valueOf(modifier)), 
         Integer.parseInt(String.valueOf(result))); 

result.getText().toString(); 

を、あなたは以下のコードを変換する必要が

int total = Nat20_core.roll10(cumulative.isChecked(), 
         Integer.parseInt (modifier.getText().toString()), 
         Integer.parseInt(result.getText().toString())); 
+0

ああ!ありがとう、たくさんあります。あなたの推奨コードを試しましたが、アプリはクラッシュし続けています。私は行方不明の何か他にありますか?おそらくあなたの 'Nat20_core.roll10()'メソッドで – K1tfox

+0

問題。非数値文字列を 'parseInt'で解析するとエラーが発生することに注意してください。 –

+0

ブールのint intが渡されるために必要とされるものです。 – K1tfox

0

を設定するように私はまた、 "値" が "テキスト" であり、前回のプログラムでこれを試みた:

Integer.parseInt(modifier.getText() .toString())