账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    android像天气app的选择城市,选择一个城市就创建一个页面,可以创建多个页面,来回滑动,怎么实现的
    66
    0

    如题:android像天气app的选择城市,选择一个城市就创建一个页面,可以创建多个页面,来回滑动,怎么实现的

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • ←═╬∞星星点点 普通会员 1楼

      要实现这个功能,你需要一个列表来存储每个城市的信息。你可以使用 Android 的 SQLite 数据库来存储这些信息。首先,你需要创建一个 SQLite 数据库,并在其中创建一个表来存储每个城市的名称和天气信息。

      以下是一个简单的示例代码:

      ```java // 创建数据库 ContentValues values = new ContentValues(); values.put(MyWeatherContract.MyWeatherItem._id, 0); values.put(MyWeatherContract.MyWeatherItem.name, "北京"); values.put(MyWeatherContract.MyWeatherItem.weather, "晴");

      // 插入数据 ContentValues insertValues = new ContentValues(); insertValues.put(MyWeatherContract.MyWeatherItem.name, "上海"); insertValues.put(MyWeatherContract.MyWeatherItem.weather, "多云"); insertValues.put(MyWeatherContract.MyWeatherItem.location, "中国上海");

      try (ContentProvider provider =ContentProvider.open(this, "MyContract", null)) { provider.insert(MyWeatherContract.MyWeatherItem._id, insertValues); } ```

      接下来,你需要创建一个滑动列表来显示每个城市的天气信息。以下是一个简单的示例代码:

      ```java // 创建滑动列表 List items = new ArrayList<>(); items.add(new MyWeatherContract.MyWeatherItem(name="北京", weather="晴")); items.add(new MyWeatherContract.MyWeatherItem(name="上海", weather="多云")); items.add(new MyWeatherContract.MyWeatherItem(name="广州", weather="多云"));

      // 创建一个布局文件 LinearLayout linearLayout = findViewById(R.id.linear_layout); LinearLayout itemLayout = findViewById(R.id.item_layout);

      // 添加滑动列表 for (MyWeatherContract.MyWeatherItem item : items) { itemLayout.addView(item); }

      // 设置滑动列表的监听器 itemLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: return true; case MotionEvent.ACTION_UP: break; } return false; } }); ```

      最后,你需要在你的主 Activity 中创建一个滑动列表,并显示每个城市的天气信息。以下是一个简单的示例代码:

      ```java // 创建主 Activity public class MainActivity extends AppCompatActivity {

      // 获取滑动列表
      private LinearLayout linearLayout;
      private List<MyWeatherContract.MyWeatherItem> items = new ArrayList<>();
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
      
          // 初始化滑动列表
          linearLayout = findViewById(R.id.linear_layout);
          for (MyWeatherContract.MyWeatherItem item : items) {
              itemLayout.addView(item);
          }
      
          // 获取滑动列表的监听器
          linearLayout.setOnTouchListener(new View.OnTouchListener() {
              @Override
              public boolean onTouch(View v, MotionEvent event) {
                  switch (event.getAction()) {
                      case MotionEvent.ACTION_DOWN:
                          return true;
                      case MotionEvent.ACTION_UP:
                          break;
                  }
                  return false;
              }
          });
      }
      
      // 更新滑动列表
      @Override
      protected void onResume() {
          super.onResume();
          refreshWeatherData();
      }
      
      // 更新滑动列表
      private void refreshWeatherData() {
          // 在这里更新滑动列表
          for (MyWeatherContract.MyWeatherItem item : items) {
              item.name = "更新后的城市名称";
              item.weather = "更新后的天气信息";
          }
      }
      

      } ```

      以上代码只是一个基本的示例,你需要根据你的具体需求来修改和扩展它。例如,你可能需要添加更多的滑动列表页面,或者添加更多的功能来显示天气信息。

    • 時間蒼白誓言 普通会员 2楼

      要实现这个功能,你需要一个列表来存储每个城市的信息。你可以使用 Android 的 SQLite 数据库来存储这些信息。首先,你需要创建一个 SQLite 数据库,并在其中创建一个表来存储每个城市的名称和天气信息。

      以下是一个简单的示例代码:

      ```java // 创建数据库 ContentValues values = new ContentValues(); values.put(MyWeatherContract.MyWeatherItem._id, 0); values.put(MyWeatherContract.MyWeatherItem.name, "北京"); values.put(MyWeatherContract.MyWeatherItem.weather, "晴");

      // 插入数据 ContentValues insertValues = new ContentValues(); insertValues.put(MyWeatherContract.MyWeatherItem.name, "上海"); insertValues.put(MyWeatherContract.MyWeatherItem.weather, "多云"); insertValues.put(MyWeatherContract.MyWeatherItem.location, "中国上海");

      try (ContentProvider provider =ContentProvider.open(this, "MyContract", null)) { provider.insert(MyWeatherContract.MyWeatherItem._id, insertValues); } ```

      接下来,你需要创建一个滑动列表来显示每个城市的天气信息。以下是一个简单的示例代码:

      ```java // 创建滑动列表 List items = new ArrayList<>(); items.add(new MyWeatherContract.MyWeatherItem(name="北京", weather="晴")); items.add(new MyWeatherContract.MyWeatherItem(name="上海", weather="多云")); items.add(new MyWeatherContract.MyWeatherItem(name="广州", weather="多云"));

      // 创建一个布局文件 LinearLayout linearLayout = findViewById(R.id.linear_layout); LinearLayout itemLayout = findViewById(R.id.item_layout);

      // 添加滑动列表 for (MyWeatherContract.MyWeatherItem item : items) { itemLayout.addView(item); }

      // 设置滑动列表的监听器 itemLayout.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: return true; case MotionEvent.ACTION_UP: break; } return false; } }); ```

      最后,你需要在你的主 Activity 中创建一个滑动列表,并显示每个城市的天气信息。以下是一个简单的示例代码:

      ```java // 创建主 Activity public class MainActivity extends AppCompatActivity {

      // 获取滑动列表
      private LinearLayout linearLayout;
      private List<MyWeatherContract.MyWeatherItem> items = new ArrayList<>();
      
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
      
          // 初始化滑动列表
          linearLayout = findViewById(R.id.linear_layout);
          for (MyWeatherContract.MyWeatherItem item : items) {
              itemLayout.addView(item);
          }
      
          // 获取滑动列表的监听器
          linearLayout.setOnTouchListener(new View.OnTouchListener() {
              @Override
              public boolean onTouch(View v, MotionEvent event) {
                  switch (event.getAction()) {
                      case MotionEvent.ACTION_DOWN:
                          return true;
                      case MotionEvent.ACTION_UP:
                          break;
                  }
                  return false;
              }
          });
      }
      
      // 更新滑动列表
      @Override
      protected void onResume() {
          super.onResume();
          refreshWeatherData();
      }
      
      // 更新滑动列表
      private void refreshWeatherData() {
          // 在这里更新滑动列表
          for (MyWeatherContract.MyWeatherItem item : items) {
              item.name = "更新后的城市名称";
              item.weather = "更新后的天气信息";
          }
      }
      

      } ```

      以上代码只是一个基本的示例,你需要根据你的具体需求来修改和扩展它。例如,你可能需要添加更多的滑动列表页面,或者添加更多的功能来显示天气信息。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部