0

ActivitiesMain と Second の2 を作成しました。そして、テキストを送信したいので、EditTextメインからセカンドアクティビティへのボックスに入れます。最初の ID はEditTextUserName2 番目の ID は ですDescription

Main アクティビティのコードは次のとおりです。

package com.example.test;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.support.v4.app.NavUtils;
import android.content.Intent;
import android.widget.EditText;

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

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    public void onClick(View v) {
        Intent intent = new Intent(Main.this, Second.class);
        intent.putExtra("username", UserName.getText().toString()); 
        intent.putExtra("gift", Description.getText().toString());  
        startActivity(intent);
    }

    public void ButtonOneClick(View v) {
        switch (v.getId()) {
            case R.id.button1:
                Intent i = new Intent(this, Second.class);
                startActivity(i);
                break;
        }
    } 
}

2 番目のアクティビティの完全なコードは次のとおりです。

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;

public class Second extends Activity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.second);

        TextView txtInfo = (TextView)findViewById(R.id.TextOne);

        String user = "ЖЫвотное";
        String gift = "дырку от бублика";

        user = getIntent().getExtras().getString("username");
        gift = getIntent().getExtras().getString("gift");

        txtInfo.setText(user + " , вам передали " + gift);
    }
}

とエラー:

main.java: Description cannot be resolved
main.java: UserName cannot be resolved

私の英語でごめんなさい

手伝ってくれてありがとう

PS私は3日目でJavaとアンドロイドのプログラミングを勉強しています。私に石を投げないでください。

4

4 に答える 4

1

R次に、クラス ファイルを参照します。つまり、次のようになります。

EditText desc = (EditText) findViewById(R.id.Description);
...
于 2012-08-17T08:00:01.447 に答える
0

あなたは含まれていません

EditText UserName = (EditText) findViewById(R.id.username);
EditText Description = (EditText) findViewById(R.id.description);

MainActivityのonCreate()メソッドで。

于 2012-08-17T08:07:40.813 に答える
0

Javaでユーザー名と説明を初期化していません。

EditText us_name=(EditText) findViewById(R.id.user_name);
EditText us_desp=(EditText) findViewById(R.id.desp);
于 2012-08-17T08:51:16.500 に答える
0

あなたが参照UserNameしているように、Descriptionここではそれらがクラスであるため参照しています。そのようなクラスがない限り、これらのクラスが見つからない (または "解決" されない) ため、エラーが表示されます。これは、構文の強調表示によってもわかります。またはのような明るい緑/ターコイズで表示された単語が見えますMainIntent?

public void onClick(View v) {
    Intent intent = new Intent(Main.this, Second.class);
    intent.putExtra("username", UserName.getText().toString()); 
    intent.putExtra("gift", Description.getText().toString());  
    startActivity(intent);
}

代わりに、andEditTextを呼び出すクラスのインスタンスが必要です。これらのオブジェクトで、実行して作業を進めることができます。:) userNamedescriptiongetText()

public void onClick(View v) {
    Intent intent = new Intent(Main.this, Second.class);
    EditText userName = (EditText) findViewById(R.id.username);
    EditText description = (EditText) findViewById(R.id.description);
    intent.putExtra("username", userName.getText().toString()); 
    intent.putExtra("gift", description.getText().toString());  
    startActivity(intent);
}

変数の名前をキャメルケースから始まる小文字に変更したことに注意してください。明示的な規則ではありませんが、変数名を小文字で始めることは良い習慣と考えられています ('userName ,description ,intent ) while **C**lass references like (ÈditText ,Main ,Second`) は大文字で始めます。

于 2012-08-17T08:14:31.027 に答える