-1

私はAndroidプログラミングが初めてです。私は本からこのプロジェクトをやっています。名前とアドレスを返すクラスを作成し、そのための OnClickListener を作成しましたが、保存ボタンをクリックしても機能しないようです。ここに私の2つのJavaファイルがあります:

package com.example.lunchlist;

public class Returant {

        private String name="";
        private String address="";
        public String getName() {
        return(name);
        }
        public void setName(String name) {
        this.name=name;
        }
        public String getAddress() {
        return(address);
        }
        public void setAddress(String address) {
        this.address=address;
        }
        }

ここに私の MainActivity ファイルがあります:

import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class MainActivity extends Activity {

    Returant r = new Returant();



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Button save = (Button) findViewById(R.id.save);
        save.setOnClickListener(onSave);
        }

    private View.OnClickListener onSave=new View.OnClickListener() {
        public void onClick(View v) {
        EditText name=(EditText)findViewById(R.id.name);
        EditText address=(EditText)findViewById(R.id.addr);
        r.setName(name.getText().toString());
        r.setAddress(address.getText().toString());
        }

    };  
}
4

2 に答える 2

2

保存ボタンをクリックすると、TextFieldにある名前と住所が返されると思います

なぜあなたがそう思うのか私にはわかりません。この本は確かにそれを示していません。問題の本を書いたので、私はこれを知っています。具体的には、これは私の引退した本Android Programming Tutorials、具体的にはチュートリアル #2 からのようです。

の最新のクリエイティブ コモンズ版 (バージョン 3.4)では、チュートリアル #2 のチュートリアル ステップの最後に次のように記載されています。

アプリケーションを実行して、エラーが発生していないように見えることを確認します。ただし、この時点ではまだ、レストラン オブジェクトに保存されているデータを実際には使用していません。

チュートリアルのこの時点で行っていることは、オブジェクトからデータを取り出して(または、あなたの場合は)EditTextに入れることだけです。RestaurantReturant

于 2013-03-29T20:51:35.863 に答える
0

値をログに記録してログを表示するだけです。この 2 行を OnClickListener に追加してみてください。

Log.i(TAG, r.getName());
Log.i(TAG, r.getAddress());

何かが出力された場合は、変数に値が正常に設定されたことを意味します。

public class MainActivity extends Activity {

Returant r = new Returant();
EditText name;
EditText address;
String TAG = "MainActivity";

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Button save = (Button) findViewById(R.id.save);
    name=(EditText)findViewById(R.id.name);
    address=(EditText)findViewById(R.id.addr);
    save.setOnClickListener(onSave);
    }

private View.OnClickListener onSave=new View.OnClickListener() {
    public void onClick(View v) {
    r.setName(name.getText().toString());
    r.setAddress(address.getText().toString());
    Log.i(TAG, r.getName());
    Log.i(TAG, r.getAddress());
    }
};  
}
于 2013-03-29T20:50:57.567 に答える