0

それで、私はビューとアクティビティ間の移動を開始したところです。探していたものを手に入れたと思いました。すべてのエラーを修正しましたが、アプリケーションをテストするとクラッシュします。私はアンドロイドと日食が初めてです。そのため、何が起こっているのか正確にはわかりません。ここに私の MainActivity.java があります:

       import android.os.Bundle;
       import android.app.Activity;
       import android.content.Intent;
       import android.util.Log;
       import android.view.Menu;
       import android.view.MenuInflater;
       import android.view.View;
       import android.widget.Button;
       import android.widget.EditText;
       import android.widget.TextView;

    public class MainActivity extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Intent intent = getIntent();
    String info = intent.getStringExtra("info_key");
    TextView text = (TextView) findViewById(R.id.nametext);
    text.setText(info);
}


//opens a new activity.
public void openAddItem (View v){
    Intent intent = new Intent (this, Additem.class);
    startActivity(intent);
      }

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

    }

そして、これが私の 2 番目の活動です。Additem.java:

    package com.grocerylist;

     import android.os.Bundle;
     import android.app.Activity;
     import android.content.Intent;
     import android.view.Menu;
     import android.view.View;
     import android.widget.EditText;
     import android.widget.TextView;

    public class Additem extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_additem);

}


public void additem (View v){
    EditText text = (EditText)findViewById(R.id.itemname);
    String info = text.getText().toString();
    Intent intent = new Intent(this, MainActivity.class);
    intent.putExtra("info_key", info);
    startActivity(intent);
     }


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

    }

ありがとうございます。ID を配置した場所に問題があると確信しています。

4

2 に答える 2

1

あなたの最初の問題はここにあります

Intent intent = getIntent();
    String info = intent.getStringExtra("info_key");
    TextView text = (TextView) findViewById(R.id.nametext);
    text.setText(info);

Intentこれが初めての場合、「取得」する必要はありませんActivityActivityこれは、 を で開始してIntentを送信するときに使用されますextras。だから、当然、infoですnull。2 番目から作成するときは何かがありますActivityが、アプリを最初に実行するときはありません。また、最初にstartActivityForResultを使用してチェックインすることもできますActivity

openAddItem()第二に、あなたが最初に呼び出した場所がわかりませんActivity。からのものかもしれButtonませんが、私には何も見えませんButtons

Android フレームワークの基礎に関する重要な理解が欠けているようです。まだドキュメントを読んでいない場合は、こちらのドキュメントから始めることをお勧めします。頑張って

また、これ

Intent intent = new Intent (this, Additem.class);

これであるべき

Intent intent = new Intent (MainActivity.this, Additem.class);
于 2013-03-21T22:28:26.667 に答える
-2

私が目にする最初の問題は、すでにcodeMagicによって言及されていました。

2 番目のこと: で別のメソッドを開始するメソッドを呼び出すとActivity、スタック内onCreate()の疑似無限数のメソッドが取得Activitiesされ、アプリがクラッシュします。

これらのチュートリアルを見ることを検討してください。開始するのに役立つ場合があります

于 2013-03-21T22:34:05.640 に答える