0

あるアクティビティでユーザーから取得したデータを別のアクティビティで表示する方法についてのチュートリアルに出くわし、(非常に限られた知識から)自分のバージョンを考え出そうとしました。

これは、を介してデータを受け入れる最初のアクティビティのコードです。

package kk.screen;

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

public class ScreenActivity extends Activity {
/** Called when the activity is first created. */

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

public void btnclick(View view) {

    inputName = (EditText)findViewById(R.id.name);
    Intent nextscreen = new Intent(this, newscreen.class);

    //Sending value to the next activity

    nextscreen.putExtra("name",inputName.getText().toString());
    startActivity(nextscreen);
 }
}

そして、IDが「btnclick」であるボタンをクリックするとアクティブ化される次のアクティビティのコードは次のとおりです。

package kk.screen;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;

public class newscreen extends Activity {

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

TextView txtName = (TextView) findViewById(R.id.txtName);

Intent i=getIntent();

//Receiving the data
String name = i.getStringExtra("name");

//Display received data
txtName.setText(name);

 }
}

問題は、ボタンをクリックするとアプリがクラッシュし、ホーム画面に戻ることです。

何が問題なのか?OnClickListener()を使用する必要がありますか?(それが私のアプローチとチュートリアルのアプローチの大きな違いのようです)

4

1 に答える 1

1

AndroidManifest.xmlファイルに2番目のアクティビティがないため、NoClassDefFoundErrorが発生していると思います。次の質問を参照してください。

AndroidManifestに新しいアクティビティを追加しますか?

また、Googleのドキュメントから:「すべてのアクティビティはマニフェストファイルの要素で表される必要があります」

http://developer.android.com/guide/topics/manifest/activity-element.html

于 2012-05-07T22:21:00.927 に答える