简单的安卓小项目 Android studio Starbuzz app

首先我们得看一下设计路程

在这里插入图片描述
在这里插入图片描述

  • 对应文件的具体位置:
    在这里插入图片描述
    strings.xml
<resources>
    <string name="app_name">Starbuzz</string>
    <string name="title_activity_drink_category">title_activity_drink_category</string>
    <string name="title_activity_drink">title_activity_drink</string>
    <string name="title_activity_food_category">title_activity_food_category</string>
    <string name="title_activity_food">title_activity_food</string>
    <string name="starbuzz_logo">Starbuzz_First_Page</string>
    <string name="starbuzz_drink_info">Starbuzz_drink_info</string>
    <string name="starbuzz_food_info">Starbuzz_food_info</string>
    <string-array name="options">
        <item>Drinks</item>
        <item>Food</item>
        <item>Stores</item>
    </string-array>
</resources>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.starbuzz">

    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".TopLevelActivity"
                  android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name=".DrinkCategoryActivity"
                  android:label="@string/title_activity_drink_category">
        </activity>
        <activity android:name=".DrinkActivity"
                  android:label="@string/title_activity_drink">
        </activity>
        <activity android:name=".FoodCategoryActivity"
                  android:label="@string/title_activity_food_category">
        </activity>
        <activity android:name=".FoodActivity"
                  android:label="@string/title_activity_food">

        </activity>
    </application>

</manifest>

Drink.java

package com.example.starbuzz;

public class Drink {
    private String name;
    private String description;
    private int imageResourceId;

    public  static final Drink[] drinks={
            new Drink("Latte","A couple of espresso shots width steamed milk",R.drawable.latte),
            new Drink("Cappucino","A couple of espresso shots width steamed milk",R.drawable.cappuccino),
            new Drink("Filter","A couple of espresso shots width steamed milk",R.drawable.filter)

    };

    private  Drink(String name,String description,int imageResourceId){
        this.name=name;
        this.description=description;
        this.imageResourceId=imageResourceId;
    }
    public  String getDescription(){
        return description;
    }
    public String getName(){
        return name;
    }
    public int getImageResourceId(){
        return imageResourceId;
    }
    public String toString(){
        return this.name;
    }

}

activity_top_level.xml

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".TopLevelActivity">


    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="63dp"
        tools:layout_editor_absoluteY="318dp">


        <ImageView
            android:id="@+id/imageView"
            android:layout_width="200dp"
            android:layout_height="100dp"
            android:src="@drawable/starbuzz_logo"
            android:contentDescription="@string/starbuzz_logo" />

        <ListView
            android:id="@+id/list_options"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:entries="@array/options">
        </ListView>


    </LinearLayout>


</androidx.constraintlayout.widget.ConstraintLayout>

TopLevelActivity.java

package com.example.starbuzz;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ListView;

public class TopLevelActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_top_level);
        AdapterView.OnItemClickListener itemClickListener=new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> listView, View itemView, int position, long id) {
                if (position==0){
                    Intent intent=new Intent(TopLevelActivity.this,DrinkCategoryActivity.class);
                    startActivity(intent);
                }
                if (position==1){
                    Intent intent=new Intent(TopLevelActivity.this,FoodCategoryActivity.class);
                    startActivity(intent);
                }
            }
        };
        ListView listView=(ListView)findViewById(R.id.list_options);
        listView.setOnItemClickListener(itemClickListener);

    }
}

DrinkCategoryActivity.java

package com.example.starbuzz;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class DrinkCategoryActivity extends ListActivity {
        public void onCreate(Bundle savedInstanceState){
                 super.onCreate(savedInstanceState);
                 ListView listDrinks=getListView();
                 ArrayAdapter<Drink>drinksAdapter=new ArrayAdapter<Drink>(
                 this,android.R.layout.simple_list_item_1,Drink.drinks);
                 listDrinks.setAdapter(drinksAdapter);

        }

        public  void onListItemClick(ListView listDrinks , View itemView, int position, long id){
            Intent intent=new Intent(DrinkCategoryActivity.this,DrinkActivity.class);
            intent.putExtra(DrinkActivity.EXTRA_DRINKNO,(int) id);
            startActivity(intent);
        }


}

activity_drink.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <ImageView
        android:id="@+id/photo"
        android:layout_width="190dp"
        android:layout_height="190dp"
        android:contentDescription="@string/starbuzz_drink_info"/>

    <TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <TextView
        android:id="@+id/description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />
</LinearLayout>

DrinkActivity.java

package com.example.starbuzz;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class DrinkActivity extends Activity {

    public  static final String EXTRA_DRINKNO ="drinkNo";
    
    protected void onCreate(Bundle savedInstanceState)   {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_drink);//가만히 생각해보니 food는 xml설정할 필요없는것 같다.

        int drinkNo=(Integer)getIntent().getExtras().get(EXTRA_DRINKNO);
        Drink drink=Drink.drinks[drinkNo];


        ImageView photo=(ImageView)findViewById(R.id.photo);
        photo.setImageResource(drink.getImageResourceId());
        photo.setContentDescription(drink.getName());

        TextView name=(TextView)findViewById(R.id.name);
        name.setText(drink.getName());

        TextView description=(TextView)findViewById(R.id.description);
        description.setText(drink.getDescription());



    }
}


下面是更完善功能,添加了FOOD功能

Food .java

package com.example.starbuzz;

public class Food {
    private String name;
    private String description;
    private int imageResourceId;

    public  static final Food[] foods={
            new Food("Hamburger","Hamburger is delicious",R.drawable.hamburger),
            new Food("Chicken","Chicken is delicious",R.drawable.chicken),
            new Food("Sandwich","Sandwich is delicious",R.drawable.sandwich)

    };

    private  Food(String name,String description,int imageResourceId){
        this.name=name;
        this.description=description;
        this.imageResourceId=imageResourceId;
    }
    public  String getDescription(){
        return description;
    }
    public String getName(){
        return name;
    }
    public int getImageResourceId(){
        return imageResourceId;
    }
    public String toString(){
    return this.name;     //FoodCategoryActivity에서
    }                    // ArrayAdapter<Food> Food.foods에서 to String 한다 name
}                        //    return this.name 에서   return this.description 로 바꾸면 화면에서 문구가 달라짐

FoodCategoryActivity.java

package com.example.starbuzz;
        import android.app.ListActivity;
        import android.content.Intent;
        import android.os.Bundle;
        import android.view.View;
        import android.widget.ArrayAdapter;
        import android.widget.ListView;

public class FoodCategoryActivity extends ListActivity {
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        ListView listFoods=getListView();
        ArrayAdapter<Food>foodsAdapter=new ArrayAdapter<Food>(
                this,android.R.layout.simple_list_item_1,Food.foods);

        listFoods.setAdapter(foodsAdapter);
    }

    public  void onListItemClick(ListView listFoods , View itemView, int position, long id){
        Intent intent=new Intent(FoodCategoryActivity.this,FoodActivity.class);
        intent.putExtra(DrinkActivity.EXTRA_FOODNO,(int) id);
        startActivity(intent);
    }
}

FoodActivity.java

package com.example.starbuzz;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ImageView;
import android.widget.TextView;

public class FoodActivity extends Activity {

    public  static final String EXTRA_FOODNO ="foodNo";

    protected void onCreate(Bundle savedInstanceState)   {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_food);

        int foodNo=(Integer)getIntent().getExtras().get(EXTRA_FOODNO);
        Food food=Food.foods[foodNo];

        ImageView photo=(ImageView)findViewById(R.id.photo);
        photo.setImageResource(food.getImageResourceId());
        photo.setContentDescription(food.getName());

        TextView name=(TextView)findViewById(R.id.name);
        name.setText(food.getName());

        TextView description=(TextView)findViewById(R.id.description);
        description.setText(food.getDescription());

    }
}

  • 8
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值