Android中View的id(个人备忘)

Android中可以同时存在多个View,它们的getId()方法返回相同的int值

淘宝android主客户端进入聚划算会加载三个宝贝界面,只有其中一个显示在当前屏幕中,因此在这个界面通过反射查找指定id的View,并通过getId()==id的方式过滤直接renturn匹配的第一个后,返回的总是当前屏幕左侧坐标为负的


以下是Android Studio环境下备忘录的简单实现方法: 1. 首先,在布局文件添加ScrollView、EditText、TextView和ImageButton控件,分别用于显示备忘录内容、输入备忘录内容、显示查询结果和添加备忘录。 2. 在Java代码,创建一个SQLiteOpenHelper类,用于创建和升级数据库。在该类,创建一个名为“memorandum”的表,包含id、content和time三个字段,分别用于存储备忘录的编号、内容和时间。 3. 创建一个Memorandum类,用于封装备忘录的内容和时间。 4. 创建一个MemorandumDao类,用于对备忘录进行增删改查操作。在该类,定义insert()、deleteAll()、queryById()和queryAll()四个方法,分别用于添加备忘录、删除所有备忘录、根据id查询备忘录和查询所有备忘录。 5. 在MainActivity,创建一个MemorandumDao对象,并在ImageButton的点击事件调用insert()方法添加备忘录,在TextView的点击事件调用queryById()方法查询备忘录,在ImageButton的长按事件调用deleteAll()方法删除所有备忘录。 ```java // SQLiteOpenHelper类 public class MemorandumOpenHelper extends SQLiteOpenHelper { private static final String DB_NAME = "memorandum.db"; private static final int DB_VERSION = 1; private static final String CREATE_TABLE = "create table memorandum (id integer primary key autoincrement, content text, time text)"; public MemorandumOpenHelper(Context context) { super(context, DB_NAME, null, DB_VERSION); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL(CREATE_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("drop table if exists memorandum"); onCreate(db); } } // Memorandum类 public class Memorandum { private int id; private String content; private String time; public Memorandum(int id, String content, String time) { this.id = id; this.content = content; this.time = time; } public int getId() { return id; } public String getContent() { return content; } public String getTime() { return time; } } // MemorandumDao类 public class MemorandumDao { private SQLiteDatabase db; public MemorandumDao(Context context) { MemorandumOpenHelper helper = new MemorandumOpenHelper(context); db = helper.getWritableDatabase(); } public void insert(String content, String time) { ContentValues values = new ContentValues(); values.put("content", content); values.put("time", time); db.insert("memorandum", null, values); } public void deleteAll() { db.delete("memorandum", null, null); } public Memorandum queryById(int id) { Cursor cursor = db.query("memorandum", null, "id=?", new String[]{String.valueOf(id)}, null, null, null); if (cursor.moveToFirst()) { String content = cursor.getString(cursor.getColumnIndex("content")); String time = cursor.getString(cursor.getColumnIndex("time")); return new Memorandum(id, content, time); } return null; } public List<Memorandum> queryAll() { List<Memorandum> list = new ArrayList<>(); Cursor cursor = db.query("memorandum", null, null, null, null, null, null); while (cursor.moveToNext()) { int id = cursor.getInt(cursor.getColumnIndex("id")); String content = cursor.getString(cursor.getColumnIndex("content")); String time = cursor.getString(cursor.getColumnIndex("time")); list.add(new Memorandum(id, content, time)); } return list; } } // MainActivity类 public class MainActivity extends AppCompatActivity { private EditText etContent; private TextView tvResult; private ImageButton ibAdd; private MemorandumDao dao; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); etContent = findViewById(R.id.et_content); tvResult = findViewById(R.id.tv_result); ibAdd = findViewById(R.id.ib_add); dao = new MemorandumDao(this); ibAdd.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { String content = etContent.getText().toString(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String time = sdf.format(new Date()); dao.insert(content, time); etContent.setText(""); } }); tvResult.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Memorandum memorandum = dao.queryById(1); if (memorandum != null) { tvResult.setText(memorandum.getContent() + "\n" + memorandum.getTime()); } } }); ibAdd.setOnLongClickListener(new View.OnLongClickListener() { @Override public boolean onLongClick(View v) { dao.deleteAll(); tvResult.setText(""); return true; } }); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值