一对一视频源码,安卓实现grid可编辑导航栏
一对一视频源码,安卓实现grid可编辑导航栏实现的相关代码
GridLayout
```cpp package com.coral3.common_module.components; import android.content.Context; import android.content.DialogInterface; import android.content.SharedPreferences; import android.text.TextUtils; import android.util.AttributeSet; import android.view.LayoutInflater; import android.view.View; import android.widget.AdapterView; import android.widget.EditText; import android.widget.GridView; import android.widget.LinearLayout; import android.widget.TextView; import android.widget.Toast; import androidx.annotation.Nullable; import androidx.appcompat.app.AlertDialog; import com.coral3.common_module.R; import com.coral3.common_module.adapter.GridAdapter; public class GridLayout extends LinearLayout { private Context mContext; private GridView gridView; private SharedPreferences sharedPreferences; public SharedPreferences.Editor editor; private String[] names = new String[]{ "lys", "yls", "syl", "sly", "ysl", "lsy" }; private int[] icons = new int[]{ R.mipmap.weixin, R.mipmap.weixin, R.mipmap.weixin, R.mipmap.weixin, R.mipmap.weixin, R.mipmap.weixin }; public GridLayout(Context context, @Nullable AttributeSet attrs) { super(context, attrs); mContext = context; View view = LayoutInflater.from(context).inflate(R.layout.layout_grid_view, this); initView(); } public void initView(){ sharedPreferences = mContext.getSharedPreferences("pos1", Context.MODE_PRIVATE); editor = sharedPreferences.edit(); gridView = findViewById(R.id.gv_grid_view); GridAdapter gridAdapter = new GridAdapter(mContext, R.layout.layout_grid_item, icons, names, sharedPreferences); gridView.setAdapter(gridAdapter); gridView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { @Override public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) { EditText editText = new EditText(mContext); TextView tv = view.findViewById(R.id.tv_grid_name); editText.setText(tv.getText().toString()); new AlertDialog.Builder(mContext) .setTitle("修改grid项目") .setMessage("修改名称") .setCancelable(false) .setView(editText) .setPositiveButton("ok", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialogInterface, int i) { String v = editText.getText().toString(); if(!TextUtils.isEmpty(v)){ editor.putString("pos1", v).apply(); tv.setText(editText.getText().toString()); Toast.makeText(mContext, "设置成功", Toast.LENGTH_SHORT).show(); } } }) .setNegativeButton("cancel", null) .show(); return true; } }); } } ```
GridAdapter
```cpp package com.coral3.common_module.adapter; import android.content.Context; import android.content.SharedPreferences; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.ImageView; import android.widget.TextView; import com.coral3.common_module.R; public class GridAdapter extends BaseAdapter { private Context context; private int resource; private int[] icons; private String[] names; private SharedPreferences sp; public GridAdapter(Context context, int resource, int[] icons, String[] names, SharedPreferences sp){ this.context = context; this.resource = resource; this.icons = icons; this.names = names; this.sp = sp; } @Override public int getCount() { return names.length; } @Override public Object getItem(int i) { return names[i]; } @Override public long getItemId(int i) { return i; } @Override public View getView(int i, View view, ViewGroup viewGroup) { viewHolder viewHolder; if(view == null){ view = LayoutInflater.from(context).inflate(resource, viewGroup, false); viewHolder = new viewHolder(); viewHolder.iv = view.findViewById(R.id.iv_grid_image); viewHolder.tv = view.findViewById(R.id.tv_grid_name); view.setTag(viewHolder); }else{ viewHolder = (viewHolder)view.getTag(); } viewHolder.iv.setImageResource(icons[i]); viewHolder.tv.setText(names[i]); if(i == 0){ String pos1 = sp.getString("pos1", null); if(pos1 != null){ viewHolder.tv.setText(pos1); } } return view; } class viewHolder{ ImageView iv; TextView tv; } } ```
layout_grid_view.xml
```cpp <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <GridView android:id="@+id/gv_grid_view" android:layout_width="match_parent" android:verticalSpacing="15dp" android:numColumns="3" android:layout_marginTop="10dp" android:layout_height="wrap_content"/> </LinearLayout> ```
layout_grid_item.xml
```cpp <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:orientation="vertical" android:layout_height="match_parent"> <ImageView android:id="@+id/iv_grid_image" android:src="@mipmap/weixin" android:layout_width="match_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/tv_grid_name" android:layout_width="match_parent" android:gravity="center" android:text="例子" android:layout_height="wrap_content"/> </LinearLayout> ```
使用
```cpp <com.coral3.common_module.components.GridLayout android:id="@+id/gl_grid_nav" android:layout_width="match_parent" android:layout_height="wrap_content"/> ```
以上就是一对一视频源码,安卓实现grid可编辑导航栏实现的相关代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现