作者chronoer (频率)
看板AndroidDev
标题Re: [开发] 关於动态产生TextView
时间Tue Mar 8 12:14:35 2011
※ 引述《Diazo ()》之铭言:
: ※ [本文转录自 Android 看板 #1DTL___P ]
: 作者: Diazo () 看板: Android
: 标题: [开发] 关於动态产生TextView
: 时间: Tue Mar 8 06:45:17 2011
: 小弟目前在尝试做一个类似条列式记事本的软体
: 有一个EditText 让使用者输入文字
: 一个Button 按下就可以储存在EditText内所输入的文字
: 最後是动态产生的TextView, 也就是说
: 每按下一次Button 就会创立一个TextView
: 然後把EditText的文字显示在TextView里
: 以下是我在动态创建TextView的程式码
: public void setTextView(LinearLayout layout,
: Context context,
: String MSG) {
: tv = new TextView(context);
: tv.setText(MSG); //MSG为EditText内的字串
: tv.setId(entryNumber); //每一个TextView都有自己的Id
: tv.setClickable(true);
: tv.setOnClickListener(new MyOnClickListener());
: //设置可被选取
: layout.addView(tv);
: }
: 目前在创建上都可以实现
: 但进一步我想要能够选取以储存的TextView
: 然後让本来输入的字串再传回EditText以供修改
: 旦目前我在 MyOnClickListener() 内部的程式码如下
: public void onClick(View v) {
: int textId = tv.getId(); //取得选取的TextView的Id
: tv.setId(textId);
: editText.setText(tv.getText().toString());
: }
根据您上一段code猜想 tv应该都是最後一个建立的TextView
所以getId都是抓到最後一个
应该使用 onClick(View v) 里的v 物件 这才是目前使用者点选的View
=>int textId = v.getId();
提供另一种方式
=> TextView tv = (TextView) v.getTag();
=> editText.setText(tv.getText().toString());
请参考试试罗
: 我想出错的部份应该是在抓取点选的TextView的Id
: 因为我不管点哪一个
: 他回传的都是我最後一次输入的字串
: 想请教该如何解决这个问题
: 实在是非常感谢...
--
故意和你刚好选同一节的课 故意在7-11和你偶然相遇
故意刚好一直出现在你视线内 故意在回家的路上碰巧遇到你
没什麽..因为没其他课了 没什麽..我只是买东西
没什麽..大概是刚好吧 没什麽..这是我回家的路线
其实一切都是没什麽 没什麽..只是我爱你
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 114.45.172.171
1F:推 Diazo:非常谢谢...不过後来我发现用ListView反而简单许多 03/09 15:37
2F:→ Diazo:但还是相当谢谢.... 03/09 15:37