0

レシピ本を書いていて、問題が発生しました。レシピ リストからレシピ表示画面にテキストを送信したいのですが、何か間違ったことをしているに違いありません。

これは私の Recipe_Button_List のコードです

public class Recipe_Button_List extends Activity {

EditText 入力メソッド;

EditText 入力成分;

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

    inputMethod = (EditText) findViewById(R.id.textView2);
    inputIngredients = (EditText) findViewById(R.id.textView1);

    ActionBar actionBar = getActionBar();
    actionBar.setDisplayHomeAsUpEnabled(true);



    Button mainNext = (Button) findViewById(R.id.Recipe1);
    mainNext.setOnClickListener(new OnClickListener() {
        public void onClick(View v) {
            final TextView mTextView = (TextView) findViewById(R.id.textView1);
            mTextView.setText(R.string.Test);
            Intent i= new Intent(getBaseContext(),recipedisplayscreen.class);
            //Sending data to the next screen
            i.putExtra("textView1", inputIngredients.getText().toString());
            i.putExtra("textView2", inputMethod.getText().toString());

            Log.e("n", inputMethod.getText()+"."+ inputIngredients.getText());

            startActivity(i);
        }
    });
}
 @Override
 public boolean onCreateOptionsMenu(Menu menu) {
     MenuInflater inflater = getMenuInflater();
     inflater.inflate(R.menu.recipe_menu1, menu);
     return true;

}

}

そして、これは私のレシピ_表示_画面です:

パブリック クラスのレシピ表示画面は、アクティビティを拡張します {

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

    TextView MethodDisplay = (TextView) findViewById(R.id.textView2);
    TextView IngredientsDisplay = (TextView) findViewById(R.id.textView4);

    Intent i = getIntent();
    String Ingredients = i.getStringExtra("TextView1");
    String Method = i.getStringExtra("TextView2");
    Log.e("recipedisplayscreen", Ingredients + "." + Method);

    MethodDisplay.setText(Method);
    IngredientsDisplay.setText(Ingredients);


    ActionBar actionBar = getActionBar();
    setTitle(R.string.title);
    actionBar.setDisplayHomeAsUpEnabled(true);}

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
            case android.R.id.home:
                // App icon in action bar clicked; go home
                Intent intent = new Intent(this, MainScreen.class);
                intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
                startActivity(intent);
                return true;
            default:
                return super.onOptionsItemSelected(item);
        }
    }




 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.recipe_menu1, menu);
        return true;

}

}

logCat のレコードは次のとおりです。

05-01 21:54:54.638: D/AndroidRuntime(10717): VM をシャットダウンしています 05-01 21:54:54.638: W/dalvikvm(10717): threadid=1: キャッチされない例外で終了するスレッド (group=0x40a301f8) 05 -01 21:54:54.638: E/AndroidRuntime(10717): 致命的な例外: メイン 05-01 21:54:54.638: E/AndroidRuntime(10717): java.lang.RuntimeException: アクティビティ ComponentInfo{com.bluStudios を開始できません.Recipes4U.ics/com.bluStudios.Recipes4U.ics.Recipe_Button_List}: java.lang.ClassCastException: android.widget.TextView を android.widget.EditText にキャストできません 05-01 21:54:54.638: E/AndroidRuntime(10717 ): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1956) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1981) 05- 01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread で。access$600(ActivityThread.java:123) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread$H.handleMessage(ActivityThread.java:1147) 05-01 21:54:54.638 : E/AndroidRuntime(10717): android.os.Handler.dispatchMessage(Handler.java:99) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.os.Looper.loop(Looper. java:137) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.main(ActivityThread.java:4424) 05-01 21:54:54.638: E/AndroidRuntime(10717) : java.lang.reflect.Method.invokeNative(Native Method) 05-01 21:54:54.638: E/AndroidRuntime(10717): java.lang.reflect.Method.invoke(Method.java:511) 05- 01 21:54:54.638: E/AndroidRuntime(10717): com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 05-01 21:54:54.638: E/AndroidRuntime(10717) : com.android で。internal.os.ZygoteInit.main(ZygoteInit.java:551) 05-01 21:54:54.638: E/AndroidRuntime(10717): dalvik.system.NativeStart.main(ネイティブ メソッド) 05-01 21:54:54.638 : E/AndroidRuntime(10717): 原因: java.lang.ClassCastException: android.widget.TextView を android.widget.EditText 05-01 21:54:54.638: E/AndroidRuntime(10717): com にキャストできません。 bluStudios.Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 で21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread で.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見るos.ZygoteInit.main(ZygoteInit.java:551) 05-01 21:54:54.638: E/AndroidRuntime(10717): dalvik.system.NativeStart.main(ネイティブ メソッド) 05-01 21:54:54.638: E /AndroidRuntime(10717): 原因: java.lang.ClassCastException: android.widget.TextView を android.widget.EditText 05-01 21:54:54.638: E/AndroidRuntime(10717): com.bluStudios にキャストできません。 Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21: 54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity で(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見るos.ZygoteInit.main(ZygoteInit.java:551) 05-01 21:54:54.638: E/AndroidRuntime(10717): dalvik.system.NativeStart.main(ネイティブ メソッド) 05-01 21:54:54.638: E /AndroidRuntime(10717): 原因: java.lang.ClassCastException: android.widget.TextView を android.widget.EditText 05-01 21:54:54.638: E/AndroidRuntime(10717): com.bluStudios にキャストできません。 Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21: 54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity で(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見るメイン (ZygoteInit.java:551) 05-01 21:54:54.638: E/AndroidRuntime(10717): dalvik.system.NativeStart.main(ネイティブ メソッド) 05-01 21:54:54.638: E/AndroidRuntime(10717) ): 原因: java.lang.ClassCastException: android.widget.TextView を android.widget.EditText 05-01 21:54:54.638: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics にキャストできません。 Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java) :1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見るメイン (ZygoteInit.java:551) 05-01 21:54:54.638: E/AndroidRuntime(10717): dalvik.system.NativeStart.main(ネイティブ メソッド) 05-01 21:54:54.638: E/AndroidRuntime(10717) ): 原因: java.lang.ClassCastException: android.widget.TextView を android.widget.EditText 05-01 21:54:54.638: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics にキャストできません。 Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java) :1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見る54:54.638: E/AndroidRuntime(10717): dalvik.system.NativeStart.main(Native Method) 05-01 21:54:54.638: E/AndroidRuntime(10717): 原因: java.lang.ClassCastException: android. widget.TextView は android.widget.EditText 05-01 21:54:54.638: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 にキャストできません21:54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation で.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E /AndroidRuntime(10717): ... 11 件以上54:54.638: E/AndroidRuntime(10717): dalvik.system.NativeStart.main(Native Method) 05-01 21:54:54.638: E/AndroidRuntime(10717): 原因: java.lang.ClassCastException: android. widget.TextView は android.widget.EditText 05-01 21:54:54.638: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 にキャストできません21:54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation で.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E /AndroidRuntime(10717): ... 11 件以上NativeStart.main(Native Method) 05-01 21:54:54.638: E/AndroidRuntime(10717): 原因: java.lang.ClassCastException: android.widget.TextView は android.widget.EditText にキャストできません 05-01 21 :54:54.638: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21:54:54.638: E/AndroidRuntime(10717): Android で。 app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54: 54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見るNativeStart.main(Native Method) 05-01 21:54:54.638: E/AndroidRuntime(10717): 原因: java.lang.ClassCastException: android.widget.TextView は android.widget.EditText にキャストできません 05-01 21 :54:54.638: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21:54:54.638: E/AndroidRuntime(10717): Android で。 app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54: 54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見るTextView は android.widget.EditText 05-01 21:54:54.638 にキャストできません: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21: 54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate で(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime (10717): ... 11 件以上TextView は android.widget.EditText 05-01 21:54:54.638 にキャストできません: E/AndroidRuntime(10717): com.bluStudios.Recipes4U.ics.Recipe_Button_List.onCreate(Recipe_Button_List.java:25) 05-01 21: 54:54.638: E/AndroidRuntime(10717): android.app.Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate で(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime (10717): ... 11 件以上Activity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見るActivity.performCreate(Activity.java:4465) 05-01 21:54:54.638: E/AndroidRuntime(10717): android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1049) 05-01 21:54:54.638: E/AndroidRuntime(10717): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1920) 05-01 21:54:54.638: E/AndroidRuntime(10717): ... 11 もっと見る

PS 強制終了は、recipe_button_list に移動するボタンを押すと発生します

編集: こんにちは :) 別の小さな問題があります - 私のレシピ_ディスプレイ_スクリーンは前の画面から null.null を受け取ります。

LogCat:

05-02 11:28:29.764: D/dalvikvm(28455): GC_CONCURRENT 解放された 113K、2% 解放された 14526K/14727K、一時停止 2ms+14ms 05-02 11:28:30.022: E/n(28455): FromStringMethod.ifこれが表示されている場合、インテント アクティビティは正しく機能しています-heap(28455): 1401676 バイトの割り当て 05-02 11:28:30.202: D/dalvikvm(28455): GC_CONCURRENT が 3K を解放し、14179K/14727K が 4% 解放され、2ms+ の一時停止2ms 05-02 11:28:30.218: E/recipedisplayscreen(28455): null.null

編集終了

4

2 に答える 2

2

ああ!テキストビューを編集ボックスにキャストしています。ラインを見る

inputMethod = (EditText) findViewById(R.id.textView2);
inputIngredients = (EditText) findViewById(R.id.textView1);

それらをに変更します

inputMethod = (TextView) findViewById(R.id.textView2);
inputIngredients = (TextView) findViewById(R.id.textView1);

inputMethod と inputIngredients の宣言を変更します。

それらをEditTextsにするつもりでない限り、その場合、レイアウトのレシピでそれを変更する必要があります

于 2012-05-01T21:04:51.733 に答える
1

編集: Logcat では、TextView を EditText にキャストします。XMLレイアウトファイルのビューをEditTextに設定すると、動作する必要があります:)

inputMethod = (EditText) findViewById(R.id.textView2);
inputIngredients = (EditText) findViewById(R.id.textView1);

編集終了

最初のアクティビティにデータを入れます。

Intent i= new Intent(this, recipedisplayscreen.class);
//Sending data to the next screen
i.putExtra("textView1", inputIngredients.getText().toString());
i.putExtra("textView2", inputMethod.getText().toString());

RecipeDisplayScreen でデータを取得できますonCreate()

Bundle extras = getIntent().getExtras();

String myText1;
String myText2;


if(extras != null) {
   if (extras.containsKey("textView1") {
      myText1 = extras.getString("textView1");
   }
   if (extras.containsKey("textView2") {
      myText2 = extras.getString("textView2");
   }
}

うまくいくことを願っています!そうでない場合は、ログ出力を投稿してください:)

いくつかのヒント: 適切なキー名を考え、それらを定数として設定します。

public static final String INGREDIENTS_KEY = "INGREDIENTS_TEXT_KEY";
public static final String METHOD_KEY = "METHOD_TEXT_KEY";

クラス名には 常に大文字を使用recipedisplayscreen=>RecipeDisplayScreen フィールドには小文字を使用: String Method => String txtMethod; TextView MethodDisplay=>TextView methodView;

于 2012-05-01T20:44:11.957 に答える