用android studio做一个汽车推荐app的实现代码
时间: 2023-06-14 08:04:44 浏览: 86
实现一个汽车推荐 App 的代码需要以下步骤:
1. 设计 UI 界面
2. 从后端 API 获取汽车数据
3. 根据用户的选择筛选汽车数据
4. 显示推荐的汽车列表
下面是一个简单的示例代码,可以根据自己的需求进行修改:
1. 设计 UI 界面
在 res/layout 目录下创建一个新的布局文件 activity_main.xml,添加以下代码:
```xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<TextView
android:id="@+id/title"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="汽车推荐 App"
android:textSize="24sp" />
<Spinner
android:id="@+id/brand_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/brands"
android:prompt="@string/brand_prompt" />
<Spinner
android:id="@+id/type_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:entries="@array/types"
android:prompt="@string/type_prompt" />
<Button
android:id="@+id/search_button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="搜索" />
<ListView
android:id="@+id/car_list"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>
```
2. 从后端 API 获取汽车数据
在 AndroidManifest.xml 文件中添加 Internet 权限:
```xml
<uses-permission android:name="android.permission.INTERNET" />
```
在 MainActivity.java 文件中添加以下代码:
```java
public class MainActivity extends AppCompatActivity {
private List<Car> carList = new ArrayList<>();
private CarAdapter carAdapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
carAdapter = new CarAdapter(this, R.layout.car_item, carList);
ListView carListView = findViewById(R.id.car_list);
carListView.setAdapter(carAdapter);
Button searchButton = findViewById(R.id.search_button);
searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
searchCars();
}
});
}
private void searchCars() {
Spinner brandSpinner = findViewById(R.id.brand_spinner);
Spinner typeSpinner = findViewById(R.id.type_spinner);
String brand = (String) brandSpinner.getSelectedItem();
String type = (String) typeSpinner.getSelectedItem();
carList.clear();
// TODO: 从后端 API 获取汽车数据
// 设置 carList
carAdapter.notifyDataSetChanged();
}
private class CarAdapter extends ArrayAdapter<Car> {
private int resourceId;
public CarAdapter(Context context, int resourceId, List<Car> objects) {
super(context, resourceId, objects);
this.resourceId = resourceId;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Car car = getItem(position);
View view = LayoutInflater.from(getContext()).inflate(resourceId, parent, false);
TextView nameTextView = view.findViewById(R.id.name_text);
nameTextView.setText(car.getName());
TextView priceTextView = view.findViewById(R.id.price_text);
priceTextView.setText(car.getPrice());
return view;
}
}
private class Car {
private String name;
private String price;
public Car(String name, String price) {
this.name = name;
this.price = price;
}
public String getName() {
return name;
}
public String getPrice() {
return price;
}
}
}
```
3. 根据用户的选择筛选汽车数据
在 res/values 目录下创建一个新的 XML 文件 arrays.xml,添加以下代码:
```xml
<resources>
<string name="brand_prompt">请选择品牌</string>
<string-array name="brands">
<item>奥迪</item>
<item>宝马</item>
<item>奔驰</item>
<item>本田</item>
<item>丰田</item>
</string-array>
<string name="type_prompt">请选择类型</string>
<string-array name="types">
<item>轿车</item>
<item>SUV</item>
<item>MPV</item>
</string-array>
</resources>
```
在 MainActivity.java 文件中修改 searchCars() 方法:
```java
private void searchCars() {
Spinner brandSpinner = findViewById(R.id.brand_spinner);
Spinner typeSpinner = findViewById(R.id.type_spinner);
String brand = (String) brandSpinner.getSelectedItem();
String type = (String) typeSpinner.getSelectedItem();
carList.clear();
// TODO: 从后端 API 获取汽车数据
// 根据用户的选择筛选汽车数据
// 设置 carList
carAdapter.notifyDataSetChanged();
}
```
4. 显示推荐的汽车列表
在 MainActivity.java 文件中添加以下代码:
```java
private void searchCars() {
Spinner brandSpinner = findViewById(R.id.brand_spinner);
Spinner typeSpinner = findViewById(R.id.type_spinner);
String brand = (String) brandSpinner.getSelectedItem();
String type = (String) typeSpinner.getSelectedItem();
carList.clear();
// TODO: 从后端 API 获取汽车数据
// 根据用户的选择筛选汽车数据
// 设置 carList
carAdapter.notifyDataSetChanged();
ListView carListView = findViewById(R.id.car_list);
carListView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Car car = carList.get(position);
Toast.makeText(MainActivity.this, car.getName() + " " + car.getPrice(), Toast.LENGTH_SHORT).show();
}
});
}
```
以上是一个简单的汽车推荐 App 的代码示例,可以根据自己的需求进行修改。需要注意的是,从后端 API 获取汽车数据需要使用异步任务或者线程池等方式进行,避免阻塞主线程。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)