実装ボタンで固まった

私は非常にJavaの新しい(埋め込みのみの主に決闘)

ImはボタンをクリックするだけでeditText入力の値を別のeditTextに渡す簡単なアンドロイドプログラムを作成しています。しかし、私はいつも私のプログラムがクラッシュするボタンを押した。誰かがコメントしたいと思います:)

これは私のメインです:

package Mushroom.Pickers.Note;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
//import android.widget.Button;
//import android.widget.TableLayout;

public class Mushy extends Activity {
//private TableLayout layout;
//private Button button;

/** Called when the activity is first created. */

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);      
}   

public void Compute_data(View view) {//Function to perform on click
     //Perform calculation      
     int Hours;
     EditText start_time = (EditText)findViewById(R.id.editText26) ;
     Hours = Integer.parseInt(start_time.getText().toString());     

     EditText test_time = (EditText)findViewById(R.id.editText43);
     test_time.setText(Hours);

 }  
}

と私のXMLで:

<button
        android:id="@+id/Button1"
        android:layout_width="134px"
        android:layout_height="wrap_content"
        android:gravity="center_vertical|center_horizontal"
        android:textSize="15sp"
        android:text="Calculate"
        android:onClick="Compute_data" 
        android:textColor="#1e90ff" />




レイアウトがうまく表示されます。ボタンがクリックされたときにクラッシュする問題があります。

P/S:ここにlogcat:

12-19 03:03:02.106: W/ResourceType(667): No package identifier when getting value for resource number 0x00000004
12-19 03:03:02.106: D/AndroidRuntime(667): Shutting down VM
12-19 03:03:02.106: W/dalvikvm(667): threadid=1: thread exiting with uncaught exception (group=0x409961f8)
12-19 03:03:02.275: E/AndroidRuntime(667): FATAL EXCEPTION: main
12-19 03:03:02.275: E/AndroidRuntime(667): java.lang.IllegalStateException: Could not execute method of the activity
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.view.View$1.onClick(View.java:3039)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.view.View.performClick(View.java:3480)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.view.View$PerformClick.run(View.java:13983)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.os.Handler.handleCallback(Handler.java:605)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.os.Handler.dispatchMessage(Handler.java:92)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.os.Looper.loop(Looper.java:137)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.app.ActivityThread.main(ActivityThread.java:4340)
12-19 03:03:02.275: E/AndroidRuntime(667):  at java.lang.reflect.Method.invokeNative(Native Method)
12-19 03:03:02.275: E/AndroidRuntime(667):  at java.lang.reflect.Method.invoke(Method.java:511)
12-19 03:03:02.275: E/AndroidRuntime(667):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
12-19 03:03:02.275: E/AndroidRuntime(667):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
12-19 03:03:02.275: E/AndroidRuntime(667):  at dalvik.system.NativeStart.main(Native Method)
12-19 03:03:02.275: E/AndroidRuntime(667): Caused by: java.lang.reflect.InvocationTargetException
12-19 03:03:02.275: E/AndroidRuntime(667):  at java.lang.reflect.Method.invokeNative(Native Method)
12-19 03:03:02.275: E/AndroidRuntime(667):  at java.lang.reflect.Method.invoke(Method.java:511)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.view.View$1.onClick(View.java:3034)
12-19 03:03:02.275: E/AndroidRuntime(667):  ... 11 more
12-19 03:03:02.275: E/AndroidRuntime(667): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x4
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.content.res.Resources.getText(Resources.java:247)
12-19 03:03:02.275: E/AndroidRuntime(667):  at android.widget.TextView.setText(TextView.java:3428)
12-19 03:03:02.275: E/AndroidRuntime(667):  at Mushroom.Pickers.Note.Mushy.Compute_data(Mushy.java:29)
12-19 03:03:02.275: E/AndroidRuntime(667):  ... 14 more
12-19 03:03:02.475: D/dalvikvm(667): GC_CONCURRENT freed 230K, 4% free 10426K/10759K, paused 6ms+14ms
1
あなたはlogcatを投稿できますか?
追加された 著者 Parth Doshi,
@ user1105087:logcatをそのまま(テーブルから)コピーして、ここに貼り付けてください。フォーマットを取得するために何か変更する必要はありません。
追加された 著者 Hiral,
申し訳ありませんが、私は実際にここに投稿することができます、そのテーブルの私は思う
追加された 著者 Maxi Vu,
質問に警告(エラー)が出てきたら、私はその部分を投稿しました。
追加された 著者 Maxi Vu,
ありがとうaniway Hiral、このウェブサイトのメンバーは本当に役立ちます、私はshudがしばらくの間周りにいると思います:D
追加された 著者 Maxi Vu,

2 答え

問題:

test_time.setText(value) have overridden methods of both int and String parameters.

  • int parameter indicate that you will pass String resource id. (i.e R.string.any_string)
  • String parameter indicate that you will pass String.

あなたは時間を文字列ではなくintとして渡していました。

解決策:

どのビュー(たとえば Button TextView EditText )のテキストとして設定するにはintをStringに変換します コードを以下のように変更します。

public void Compute_data(View view) {
     //....
     //here is rest of your code
     EditText test_time = (EditText)findViewById(R.id.editText43);
     test_time.setText(String.valueOf(Hours));//<<<------consider this change
}
3
追加された
@gideon:彼は彼の名前をuserXXXXXからMaxiVuに変更したと聞こえます
追加された 著者 Adil Soomro,
@MaxiVuの上にあなたの名前をクリックしてください。あなたのプロフィールの上にある返事がないボタンの上に編集ボタンがあります。クリックするとプロフィールを編集できます。
追加された 著者 gideon,
@アジルああ!笑最初のコメントを見ていない!レビュー数が多すぎる= P
追加された 著者 gideon,
これは、多くの人に感謝します。 Btwどのように私は私のusernamを変更することができます、このuserxxxはlolzzを吸う
追加された 著者 Maxi Vu,

onCreate()内のどこでもメソッドcompute_data()を呼び出すのではなく、呼び出してもボタンclick.andに限定されず、ボタンを押さなかったときにビューを渡すとエラーになりますthere.insteadこれを試してください:

public class Mushy extends Activity {

   Button button;
   EditText start_time;
   EditText test_time;

   @Override
   public void onCreate(Bundle savedInstanceState) {

      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);

      button=(Button)findViewById(R.id.Button1); 
      start_time = (EditText)findViewById(R.id.editText26) ;
      test_time = (EditText)findViewById(R.id.editText43);

      button.setOnClickListener(new OnClickListener(){

          @Override
          public void onClick(View arg0){

                compute_data();
          }
      });    
  }   

  public void compute_data() {     

     //Perform calculation      

      test_time.setText(start_time.getText().toString());//puts value of 1st EditText into 2nd
  }  
}
0
追加された
@Maxi Vu:まあ、それはまた方法です!
追加された 著者 Hiral,
あなたはEditText.butに文字列以外のものを置くことはできません。これをハックとして使うことができます:float floatValue = 2.5; editText.setText(floatValue + "");
追加された 著者 Hiral,
あなたの "何でも"を文字列オブジェクトに変換する必要があります。
追加された 著者 Hiral,
実際に私はボタンのXMLスクリプトに含まれていたアンドロイド:onClick = "Compute_data"
追加された 著者 Maxi Vu,
好奇心の問題、10進数(浮動小数点数)をedittextに出力する方法
追加された 著者 Maxi Vu,
ですから、edittextの入力形式をdecimalnumberとして、どのようにしてedittextに何かを出力することができます
追加された 著者 Maxi Vu,