91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android中怎么新建多級列表

發布時間:2021-08-10 14:29:26 來源:億速云 閱讀:193 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關Android中怎么新建多級列表,文章內容質量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關知識有一定的了解。

窗口代碼

/** * 新建一個第一級列表的條目 * 1.選擇圖片和附件都用Intent.ACTION_GET_CONTENT實現 * 2.打開文件用Intent.ACTION_VIEW實現 * 3.回傳的URI需要轉化成真實路徑 * 4.提交數據之后需要刷新列表 */public class SectionNewActivity extends AppCompatActivity implements View.OnClickListener { private static final String TAG = "SectionNewActivity"; @BindView(R.id.tv_title_middle) TextView title; @BindView(R.id.title_left) ImageView back; @BindView(R.id.edit_tv) TextView edit; @BindView(R.id.filter_tv) TextView filter; @BindView(R.id.section_new_logo) ImageView sectionLogo; @BindView(R.id.section_new_manager) TextView sectionManager; @BindView(R.id.section_new_title) TextView sectionTitle; @BindView(R.id.section_new_desc) TextView sectionDesc; @BindView(R.id.tv_upload_attach) TextView selectAttach; @BindView(R.id.lv_attach) ListView mListView; private Context mContext; private List<ClsAttachMent> mAttachList; private AttachmentListAdapter mAdapter; @Override protected void onCreate(@Nullable Bundle savedInstanceState) {  super.onCreate(savedInstanceState);  setContentView(R.layout.activity_section_new);  ButterKnife.bind(this);  initView();  initData();  initListener(); } private void initData() {  mContext = this;  //初始化數據源  mAttachList = new ArrayList<>();  mAdapter = new AttachmentListAdapter(mAttachList, mContext);  mListView.setAdapter(mAdapter); } private void initView() {  title.setText("新建板塊");  edit.setVisibility(View.VISIBLE);  edit.setCompoundDrawablesWithIntrinsicBounds(R.drawable.ic_send_black_24dp, 0, 0, 0); } private void initListener() {  back.setOnClickListener(this);  edit.setOnClickListener(this);  filter.setOnClickListener(this);  sectionLogo.setOnClickListener(this);  sectionManager.setOnClickListener(this);  selectAttach.setOnClickListener(this);  //點擊附件列表條目的刪除按鈕,刪除對應附件  mAdapter.setmCallback((view, position) -> {   mAttachList.remove(position);   mAdapter.notifyDataSetChanged();  });  //點擊附件列表彈出打開方式  mListView.setOnItemClickListener((parent, view, position, id) -> {   ClsAttachMent clsAttachMent = mAttachList.get(position);   Intent intent = new Intent();   intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);   intent.setAction(Intent.ACTION_VIEW);   intent.setDataAndType(Uri.parse(clsAttachMent.getUri()), "*/*");   startActivity(intent);  }); } @Override public void onClick(View v) {  if (v.getId() == R.id.title_left) {   finish();  }  if (v.getId() == R.id.edit_tv) {   submit();  }  if (v.getId() == R.id.section_new_logo) {   //打開手機原生的文件管理器,并且選取內容   Intent intent = new Intent(Intent.ACTION_GET_CONTENT);   intent.addCategory(Intent.CATEGORY_OPENABLE);   //文件類型為圖片   intent.setType("image/*");   startActivityForResult(intent, 16352);  }  if (v.getId() == R.id.section_new_manager) {   Intent intent = new Intent(mContext, UserSelectActivity.class);   startActivityForResult(intent, 12345);  }  if (v.getId() == R.id.tv_upload_attach) {   //上傳的附件數量不能超過4個   if (mAttachList.size() < 4) {    Intent intent = new Intent(Intent.ACTION_GET_CONTENT);    intent.addCategory(Intent.CATEGORY_OPENABLE);    intent.setType("*/*");    startActivityForResult(intent, 12367);    if (mAttachList.size() == 0) {     Toast.makeText(mContext, R.string.upload_warning, Toast.LENGTH_LONG).show();    }   } else {    Toast.makeText(mContext, "附件數量已達上限!", Toast.LENGTH_SHORT).show();   }  } } private void submit() {  Toast.makeText(mContext, "在此處調用接口!", Toast.LENGTH_SHORT).show();  finish(); } @Override //requestCode要對應上,resultCode都為默認值RESULT_OK protected void onActivityResult(int requestCode, int resultCode, Intent data) {  //選擇圖片完成之后使用glide加載到控件上,此處有時需要把圖片上傳給后臺  //提交數據的時候傳圖片在后臺的路徑  if (requestCode == 16352 && resultCode == RESULT_OK) {   Glide.with(mContext).load(data.getData()).into(sectionLogo);  }  //打開選擇用戶的頁面,根據傳的參數不同頁面也不同,默認是單選頁面  if (requestCode == 12345 && resultCode == RESULT_OK) {   ClsNormalUser user = data.getParcelableExtra("user");   sectionManager.setText(user.getCName());  }  //遍歷已經上傳的附件列表,如果已經存在就彈出提示  if (requestCode == 12367 && resultCode == RESULT_OK) {   String uri = data.getData().toString();   if (mAttachList.size() > 0) {    for (int i = 0; i < mAttachList.size(); i++) {     if (uri.equals(mAttachList.get(i).getUri())) {      Toast.makeText(mContext, "請選擇不同文件!", Toast.LENGTH_SHORT).show();      break;     }     if (i == mAttachList.size() - 1) {      addAttach(data);      break;     }    }   } else {    addAttach(data);   }  }  super.onActivityResult(requestCode, resultCode, data); } private void addAttach(Intent data) {  //這里使用第三方庫ucrop的getPath方法,也可以自己實現uri轉換為path  File file = new File(getPath(mContext, data.getData()));  ClsAttachMent clsAttachMent = new ClsAttachMent();  String name = file.getName();  String type = name.split("\\.")[1];  String size = file.length() + "";  clsAttachMent.setSize(size);  clsAttachMent.setFilename(name);  clsAttachMent.setUri(data.getData().toString());  //這里需要調用上傳接口  uploadFile(file.getPath());  mAttachList.add(clsAttachMent);  mAdapter.notifyDataSetChanged(); } private void uploadFile(String path) {  Toast.makeText(mContext, "在此處調用接口!", Toast.LENGTH_SHORT).show(); }}

布局文件代碼

<?xml version="1.0" encoding="utf-8"?><ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:background="@color/ghostwhite" android:layout_height="match_parent"> <LinearLayout  android:layout_width="match_parent"  android:layout_height="wrap_content"  android:orientation="vertical">  <include layout="@layout/title_bar" />  <ImageView   android:id="@+id/section_new_logo"   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:layout_gravity="center"   android:scaleType="centerCrop"   android:background="@color/white"   android:src="@drawable/logo" />  <include layout="@layout/layout_item_pider_horizontal" />  <EditText   android:id="@+id/section_new_title"   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:layout_margin="10dp"   android:background="@null"   android:hint="請輸入名稱"   android:inputType="text"   android:textColor="@color/black" />  <include layout="@layout/layout_item_pider_horizontal" />  <EditText   android:id="@+id/section_new_desc"   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:layout_margin="10dp"   android:background="@null"   android:gravity="top|start"   android:hint="請輸入內容"   android:inputType="textMultiLine"   android:minHeight="100dp"   android:textColor="@color/black" />  <include layout="@layout/layout_item_pider_horizontal" />  <LinearLayout   android:layout_width="wrap_content"   android:layout_height="wrap_content"   android:layout_margin="10dp"   android:orientation="horizontal">   <TextView    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:text="選擇版主:"    android:textColor="@color/black"    android:textSize="18sp" />   <TextView    android:id="@+id/section_new_manager"    android:layout_width="0dp"    android:layout_height="wrap_content"    android:layout_weight="1"    android:drawableEnd="@drawable/ic_arrow_drop_down_black_24dp"    android:text="default user"    android:textColor="@color/black"    android:textSize="18sp" />  </LinearLayout>  <include layout="@layout/layout_item_pider_horizontal" />  <LinearLayout   android:layout_width="match_parent"   android:layout_height="wrap_content"   android:gravity="center_vertical"   android:background="@color/white"   android:orientation="horizontal">   <TextView    android:layout_width="200dp"    android:layout_height="wrap_content"    android:layout_marginStart="20dp"    android:gravity="center_vertical"    android:minHeight="30dp"    android:text="文件名:"    android:textColor="@color/black" />   <TextView    android:layout_width="100dp"    android:layout_height="30dp"    android:gravity="center_vertical"    android:text="文件大小:"    android:textColor="@color/black" />   <TextView    android:layout_width="wrap_content"    android:layout_height="30dp"    android:gravity="center_vertical"    android:text="操作:"    android:textColor="@color/black" />  </LinearLayout>  <ListView   android:id="@+id/lv_attach"   android:layout_width="match_parent"   android:layout_height="160dp"   android:pider="@null" />  <include layout="@layout/layout_item_pider_horizontal" />  <TextView   android:id="@+id/tv_upload_attach"      android:layout_width="wrap_content"   android:layout_height="40dp"   android:layout_gravity="end"   android:text="添加附件"   android:textColor="@color/black"   android:textSize="16sp" /> </LinearLayout></ScrollView>

適配器代碼

public class AttachmentListAdapter extends BaseAdapter { private List<ClsAttachMent> mList; private LayoutInflater mInflater; private Callback mCallback; //自定義回調接口,用于傳值 public interface Callback {  void onClick(View view, int position); } public AttachmentListAdapter(List<ClsAttachMent> attachments, Context mContext) {  this.mList = attachments;  mInflater = LayoutInflater.from(mContext); } public void setmCallback(Callback mCallback) {  this.mCallback = mCallback; } @Override public int getCount() {  return mList.size(); } @Override public ClsAttachMent getItem(int position) {  return mList.get(position); } @Override public long getItemId(int position) {  return position; } @Override public View getView(int position, View convertView, ViewGroup parent) {  ClsAttachMent clsAttachMent = mList.get(position);  ViewHolder holder;  if (convertView == null) {   holder = new ViewHolder();   convertView = mInflater.inflate(R.layout.item_attchment_list, null);   holder.delete = convertView.findViewById(R.id.attachment_delete);   holder.name = convertView.findViewById(R.id.attachment_name);   holder.size = convertView.findViewById(R.id.attachment_size);   convertView.setTag(holder);  } else {   holder = (ViewHolder) convertView.getTag();  }  holder.name.setText(clsAttachMent.getFilename());  long length = Long.parseLong(clsAttachMent.getSize());  holder.size.setText(length / 1024 + "KB");  //將position放在tag里面  holder.delete.setTag(position);  holder.delete.setOnClickListener(v -> {   //觸發點擊事件的時候將position回傳   mCallback.onClick(v, (Integer) v.getTag());  });  return convertView; } private class ViewHolder {  TextView name;  TextView size;  TextView delete; }}

關于Android中怎么新建多級列表就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

望都县| 临泉县| 津南区| 中卫市| 霍林郭勒市| 渭南市| 剑河县| 濮阳县| 长子县| 丘北县| 诸城市| 乐陵市| 达尔| 宣城市| 灵石县| 景宁| 武邑县| 湘阴县| 兴义市| 峨边| 庆元县| 丹棱县| 刚察县| 闽侯县| 辉县市| 莒南县| 噶尔县| 大厂| 昂仁县| 陆良县| 齐河县| 岳阳县| 蛟河市| 霍城县| 凌云县| 孟州市| 敦煌市| 拉孜县| 中方县| 乐亭县| 上杭县|