Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 餐厅计划教程_Java_Android - Fatal编程技术网

Java 餐厅计划教程

Java 餐厅计划教程,java,android,Java,Android,我在继续学习老师给我的Android教程。该程序的想法是输入餐厅名称、地址和餐厅类型,并创建一个显示此信息的界面 我相信我完全复制了代码。但是,我得到一个错误: "The method getType() is undefined for the type Restaurant". 我不知道这意味着什么以及如何修复它 Eclipse给我的建议是“在type restaurant中创建方法getType()”,但当我这样做时,在运行我的程序、输入我的餐馆的详细信息并保存它们时,我会得到一个空指针

我在继续学习老师给我的Android教程。该程序的想法是输入餐厅名称、地址和餐厅类型,并创建一个显示此信息的界面

我相信我完全复制了代码。但是,我得到一个错误:

"The method getType() is undefined for the type Restaurant".
我不知道这意味着什么以及如何修复它

Eclipse给我的建议是“在type restaurant中创建方法getType()”,但当我这样做时,在运行我的程序、输入我的餐馆的详细信息并保存它们时,我会得到一个空指针异常

因此,我的问题是:

  • 这个错误意味着什么
  • 我怎么修理它
下面是我的主课午餐列表.java:

@SuppressLint({ "ParserError", "ParserError" }) 
public class LunchList extends Activity {
    List<Restaurant> model=new ArrayList<Restaurant>();
    ArrayAdapter<Restaurant> adapter=null;

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

        Button save=(Button)findViewById(R.id.btnSave);

        save.setOnClickListener(onSave);

        ListView list=(ListView)findViewById(R.id.restaurants);

        adapter=new RestaurantAdapter();
        list.setAdapter(adapter);
    }

   private View.OnClickListener onSave=new View.OnClickListener() {
        public void onClick(View v){
            Restaurant r=new Restaurant();
            EditText name=(EditText) findViewById(R.id.name);
            EditText address=(EditText) findViewById(R.id.address);


            r.setName(name.getText().toString());
            r.setAddress(address.getText().toString());

            RadioGroup types=(RadioGroup)findViewById(R.id.types);

            switch (types.getCheckedRadioButtonId()){
            case R.id.sit_down:
                r.setType("sit_down");
                break;
            case R.id.take_out:
                r.setType("take_out");
                break;
            case R.id.delivery:
                r.setType("delivery");
                break;

            }
            adapter.add(r);
        }
        };

        class RestaurantAdapter extends ArrayAdapter<Restaurant> {
            RestaurantAdapter(){
                super(LunchList.this,R.layout.row,model);
            }
        public View getView(int position, View convertView, ViewGroup parent){
            View row=convertView;
            RestaurantHolder holder=null;

            if (row==null){
                LayoutInflater inflater=getLayoutInflater();

                row=inflater.inflate(R.layout.row, parent, false);
                holder=new RestaurantHolder(row);
                row.setTag(holder);
            }
            else{
                holder=(RestaurantHolder)row.getTag();
            }
            holder.populateFrom(model.get(position));
            return(row);
        }
        }

        static class RestaurantHolder {
            private TextView name=null;
            private TextView address=null;
            private ImageView icon=null;
            private View row=null;

            RestaurantHolder(View row){
                this.row=row;

                name=(TextView)row.findViewById(R.id.title);
                address=(TextView)row.findViewById(R.id.address);
                icon=(ImageView)row.findViewById(R.id.icon);
            }

            void populateFrom(Restaurant r){
                name.setText(r.getName());
                address.setText(r.getAddress());

            if (r.getType().equals("sit_down")){
                icon.setImageResource(R.drawable.sitdown);
            }
            else if (r.getType().equals("takeout")){
                icon.setImageResource(R.drawable.takeout);  
            }
            else{
                icon.setImageResource(R.drawable.delivery);
            }

        }
}
}

将此添加到您的餐厅课程中

public String getType() {
    return type;
}

将此添加到您的餐厅课程中

public String getType() {
    return type;
}

在回答第一部分的问题时,根据您给我们的代码,您肯定需要在
Restaurant
类中实现
getType()
方法

关于
NullPointerException
,这可能是因为
getType
实现返回了
type
的值,该值可能未初始化(实际上,如果
setType
实现没有逻辑,则无法设置)。您需要执行以下操作:

public void setType(String string) {
    this.type = string;
}

您可能还希望对
午餐列表中返回的
type
值执行一些空检查
getType
用法。取决于您如何使用它。

在回答第一部分的问题时,根据您给我们的代码,您肯定需要在
餐厅
类中实现
getType()
方法

关于
NullPointerException
,这可能是因为
getType
实现返回了
type
的值,该值可能未初始化(实际上,如果
setType
实现没有逻辑,则无法设置)。您需要执行以下操作:

public void setType(String string) {
    this.type = string;
}

您可能还希望对
午餐列表中返回的
type
值执行一些空检查
getType
用法。取决于你如何使用它。

我真诚地希望讲师给了你一本包含这些教程的书,这本书解释了如何实施这些教程。他做到了。只是这本书没有说明如果发生这种错误该怎么办。另外,我的老师也是android新手,这对我没有帮助。几乎Stackoverflow一直在教我android:)“只是这本书没有说如果发生这个错误该怎么办”——这本书一步一步地告诉你如何实现这个应用,有时还包括中间步骤结果的完整源代码列表,我真诚地希望讲师给了你一本包含这些教程的书,这本书解释了如何实现这些教程。他做到了。只是这本书没有说明如果发生这种错误该怎么办。另外,我的老师也是android新手,这对我没有帮助。几乎Stackoverflow一直在教我android:)“只是这本书没有说如果发生这个错误该怎么办”——这本书一步一步地告诉你如何实现这个应用,有时还包括中间步骤结果的完整源代码列表,并有指向的指针。您的代码解决方案不起作用,但您的解释很有帮助。如果我有这个名声,我会给你一票。别担心。我现在看到的更多的是对艾哈迈德答案的补充。希望有帮助:)您的代码解决方案不起作用,但您的解释很有帮助。如果我有这个名声,我会给你一票。别担心。我现在看到的更多的是对艾哈迈德答案的补充。希望有帮助:)