Android 从TextView获取文本-自定义ListView中的w/按钮
我有一个带有和适配器的自定义listView:Android 从TextView获取文本-自定义ListView中的w/按钮,android,listview,android-intent,onclick,textview,Android,Listview,Android Intent,Onclick,Textview,我有一个带有和适配器的自定义listView: @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder; String player = playerList.get(position); View vi = convertView; String index = String.valueOf(position + 1);
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
String player = playerList.get(position);
View vi = convertView;
String index = String.valueOf(position + 1);
if (convertView == null) {
holder = new ViewHolder();
vi = inflater.inflate(R.layout.new_player_view, null);
holder.text = (TextView) vi
.findViewById(R.id.txtV_player_input_position_title);
holder.edit = (Button) vi.findViewById(R.id.btn_Edit_Title);
holder.edit.setOnClickListener(this);
holder.text.setOnTouchListener(null);
holder.text.setText((index) + ". " + player);
vi.setOnTouchListener(null);
vi.setTag(holder);
} else {
holder = (ViewHolder) vi.getTag();
holder.text.setText((index) + ". " + player);
holder.edit.setOnClickListener(this);
}
return vi;
}
@Override
public void onClick(View v) {
TextView text = (TextView)v.getContext();
String s = text.getText().toString();
Intent intent = new Intent();
intent.setClass(context, PlayerActivity.class);
intent.putExtra("name", s);
context.startActivity(intent);
};
当我点击编辑按钮(也在TextView中)时,我试图从自定义ListView中的TextView中获取文本。在我的onClick中,我希望获取文本并将其传递到编辑屏幕,以便用户可以编辑文本并返回到listview。我的问题是我如何获得文本?我尝试过静态文本,但我不知道如何从TextView中获取文本。谢谢 您需要在活动类中使用
setOnItemClickListener
lv.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> arg0, View v, int arg2,
long arg3)
{
TextView tv = (TextView) v.findViewById(R.id.txtV_player_input_position_title);
String s = tv.getText().toString();
}
});
然后
编辑:
要避免每次单击按钮时初始化
TextView
,您可以为按钮设置标记并获取标记。这样可以避免每次初始化textview。在urOnItemClick中这样尝试
TextView text = (TextView) arg1.findViewById(R.id.ID_OF_YOUR_TEXTVIEW); //arg1 is the View
String val= text.getText().toString();
我把它设置为我的活动类,但它没有改变任何东西。我的onclick正在工作,但我无法从同一行的textView中获取文本。我将对你的听众做更多的研究。我还没穿过这个。我是Java新手,这是我在Android上的第二个项目。感谢您的回复。第一种方法是单击lsitview的行。@Raghunandan“怎么了?”每次单击按钮时,blackbelt都会初始化textview。这是有效的。还是有工作可做。每次在op的案例编辑按钮中单击按钮时。然后得到父视图初始化文本视图,然后得到文本。所以我担心效率。因为目的是在单击按钮时获取字符串,所以可以将其作为按钮的标记。这样可以避免findviewbyid。麦克利克没有被解雇吗?
private OnClickListener mClickListener = new OnClickListener() {
@Override
public void onClick(View v) {
View view = (View) v.getParent();
TextView tv = (TextView) view.findViewById(R.id.txtV_player_input_position_title);
String s = tv.getText().toString();
Intent intent = new Intent();
intent.setClass(context, PlayerActivity.class);
intent.putExtra("name", s);
context.startActivity(intent);
}
};
TextView text = (TextView) arg1.findViewById(R.id.ID_OF_YOUR_TEXTVIEW); //arg1 is the View
String val= text.getText().toString();