2024.5.10
第四十五天
所花时间:2小时
代码量:100+
博客量:1
了解到的知识点:大作业1
Mainactivity.java
package com.example.photo1; import android.content.Intent; import android.net.Uri; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.appcompat.app.AppCompatActivity; import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import java.util.ArrayList; import java.util.List; public class MainActivity extends AppCompatActivity { private EditText editTextPost; private RecyclerView recyclerViewSelectedImages, recyclerViewPosts; private List<Uri> imageUris = new ArrayList<>(); private List<Post> posts = new ArrayList<>(); private ImageAdapter imageAdapter; private PostAdapter postAdapter; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editTextPost = findViewById(R.id.editTextPost); Button buttonSelectImages = findViewById(R.id.buttonSelectImages); Button buttonUploadPost = findViewById(R.id.buttonUploadPost); recyclerViewSelectedImages = findViewById(R.id.recyclerViewSelectedImages); recyclerViewPosts = findViewById(R.id.recyclerViewPosts); // Setup RecyclerView for selected images recyclerViewSelectedImages.setLayoutManager(new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)); imageAdapter = new ImageAdapter(imageUris, this); recyclerViewSelectedImages.setAdapter(imageAdapter); // Setup RecyclerView for posts recyclerViewPosts.setLayoutManager(new LinearLayoutManager(this)); postAdapter = new PostAdapter(posts, this); recyclerViewPosts.setAdapter(postAdapter); // Image selection launcher ActivityResultLauncher<String[]> imagePickerLauncher = registerForActivityResult( new ActivityResultContracts.OpenMultipleDocuments(), uris -> { if (uris != null && !uris.isEmpty()) { imageUris.clear(); imageUris.addAll(uris); imageAdapter.notifyDataSetChanged(); } }); // Select images button event buttonSelectImages.setOnClickListener(v -> imagePickerLauncher.launch(new String[]{"image/*"})); // Upload post button event buttonUploadPost.setOnClickListener(v -> uploadPost()); } private void uploadPost() { String postText = editTextPost.getText().toString().trim(); if (!postText.isEmpty() || !imageUris.isEmpty()) { Post newPost = new Post(postText, new ArrayList<>(imageUris)); posts.add(newPost); postAdapter.notifyDataSetChanged(); editTextPost.setText(""); imageUris.clear(); imageAdapter.notifyDataSetChanged(); Toast.makeText(this, "发表成功!", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(this, "请输入文字内容或插入图片!", Toast.LENGTH_SHORT).show(); } } }