-1

我是 Android 编程新手。我正在从书中做这个项目。我编写了类来返回名称和地址,然后为它编写了 OnClickListener,但是当我单击保存按钮时它似乎不起作用。这是我的两个 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 编程教程,特别是教程 #2。

本书最新的知识共享版(3.4 版)中,教程 #2 的教程步骤的结尾有:

运行应用程序以确保它看起来运行时没有错误,尽管此时我们还没有真正使用保存在餐厅对象中的数据。

在教程的这一点上,我们所做的就是从对象中取出数据EditText并将其放入Restaurant(或者,在您的情况下,Returant)中。

于 2013-03-29T20:51:35.863 回答
0

您可以只记录该值并查看日志。尝试在 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 回答