Android 如何将包含字符串数据的选定行显示到toast中?
字符串位于字符串数组中,我调用字符串并像Android 如何将包含字符串数据的选定行显示到toast中?,android,arrays,Android,Arrays,字符串位于字符串数组中,我调用字符串并像 nameCollection = getActivity().getResources().getStringArray(R.array.boy); for (int i = 0; i < nameCollection.length; i++) { names.add(new Name(nameCollection[i])); //It will display all in the list } 例如,列表如下 APPLE BA
nameCollection = getActivity().getResources().getStringArray(R.array.boy);
for (int i = 0; i < nameCollection.length; i++) {
names.add(new Name(nameCollection[i])); //It will display all in the list
}
例如,列表如下
APPLE
BALL
CAT
DOG
现在,如果我按CAT键,则土司显示为“CAT”
我使用的是RecyclerView而不是listview。谢谢!!;)
ListView
具有OnItemClickListner
。如果使用此listner,将获得行位置作为参数。使用此位置可以访问字符串数组中的数据
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
{
Toast.makeText(getApplicationContext(),names.get(position).getName()+"", Toast.LENGTH_SHORT).show();
}
});
listView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3)
{
Toast.makeText(getApplicationContext(),names.get(position).getName()+“”,Toast.LENGTH_SHORT).show();
}
});
ListView
拥有OnItemClickListner
。如果使用此listner,将获得行位置作为参数。使用此位置可以访问字符串数组中的数据
listView.setOnItemClickListener(new OnItemClickListener()
{
@Override
public void onItemClick(AdapterView<?> arg0, View arg1,int position, long arg3)
{
Toast.makeText(getApplicationContext(),names.get(position).getName()+"", Toast.LENGTH_SHORT).show();
}
});
listView.setOnItemClickListener(新的OnItemClickListener()
{
@凌驾
public void onItemClick(适配器视图arg0、视图arg1、内部位置、长arg3)
{
Toast.makeText(getApplicationContext(),names.get(position).getName()+“”,Toast.LENGTH_SHORT).show();
}
});
在RecyclerView的onBindViewHolder()中使用以下代码
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext, "Click:" + names.get(position), Toast.LENGTH_SHORT).show();
}
});
在RecyclerView的onBindViewHolder()
中,使用以下代码
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(mContext, "Click:" + names.get(position), Toast.LENGTH_SHORT).show();
}
});
更好的实现OnClickListener for RecyclerView的方法是
用法片段:
RecyclerView recyclerView = findViewById(R.id.recycler);
recyclerView.addOnItemTouchListener(
new RecyclerItemClickListener(context, recyclerView ,new RecyclerItemClickListener.OnItemClickListener() {
@Override public void onItemClick(View view, int position) {
// do whatever
}
@Override public void onLongItemClick(View view, int position) {
// do whatever
}
})
);
RecyclerItemClickListener实现:
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
private OnItemClickListener mListener;
public interface OnItemClickListener {
public void onItemClick(View view, int position);
public void onLongItemClick(View view, int position);
}
GestureDetector mGestureDetector;
public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) {
mListener = listener;
mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@Override
public void onLongPress(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child != null && mListener != null) {
mListener.onLongItemClick(child, recyclerView.getChildAdapterPosition(child));
}
}
});
}
@Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
View childView = view.findChildViewUnder(e.getX(), e.getY());
if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
mListener.onItemClick(childView, view.getChildAdapterPosition(childView));
return true;
}
return false;
}
@Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { }
@Override
public void onRequestDisallowInterceptTouchEvent (boolean disallowIntercept){}
}
更好的实现OnClickListener for RecyclerView的方法是
用法片段:
RecyclerView recyclerView = findViewById(R.id.recycler);
recyclerView.addOnItemTouchListener(
new RecyclerItemClickListener(context, recyclerView ,new RecyclerItemClickListener.OnItemClickListener() {
@Override public void onItemClick(View view, int position) {
// do whatever
}
@Override public void onLongItemClick(View view, int position) {
// do whatever
}
})
);
RecyclerItemClickListener实现:
import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.View;
public class RecyclerItemClickListener implements RecyclerView.OnItemTouchListener {
private OnItemClickListener mListener;
public interface OnItemClickListener {
public void onItemClick(View view, int position);
public void onLongItemClick(View view, int position);
}
GestureDetector mGestureDetector;
public RecyclerItemClickListener(Context context, final RecyclerView recyclerView, OnItemClickListener listener) {
mListener = listener;
mGestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener() {
@Override
public boolean onSingleTapUp(MotionEvent e) {
return true;
}
@Override
public void onLongPress(MotionEvent e) {
View child = recyclerView.findChildViewUnder(e.getX(), e.getY());
if (child != null && mListener != null) {
mListener.onLongItemClick(child, recyclerView.getChildAdapterPosition(child));
}
}
});
}
@Override public boolean onInterceptTouchEvent(RecyclerView view, MotionEvent e) {
View childView = view.findChildViewUnder(e.getX(), e.getY());
if (childView != null && mListener != null && mGestureDetector.onTouchEvent(e)) {
mListener.onItemClick(childView, view.getChildAdapterPosition(childView));
return true;
}
return false;
}
@Override public void onTouchEvent(RecyclerView view, MotionEvent motionEvent) { }
@Override
public void onRequestDisallowInterceptTouchEvent (boolean disallowIntercept){}
}
不调用意味着?哪里没有调用??您需要onclicklistenr for RV right?然后在此处引用..不调用意味着?哪里没有调用??您需要onclicklistenr for RV right?然后在此处引用..找不到getName()方法,因此我使用toString()但它会显示Name@14756下面是Toast.makeText(view.getContext(),”的代码+name.get(position.toString(),Toast.LENGTH_SHORT.show();找不到getName()方法,所以我使用了toString(),但它会显示Name@14756下面是代码Toast.makeText(view.getContext(),“”+names.get(position.toString(),Toast.LENGTH_SHORT).show();这给了我一个奇怪的结果,比如“queendedevelopers.com.nepalibabiesnames”。Name@26868819“@Queendevelopers你班上的名字是什么?”??。请提供更多的代码,我不知道实际调用的是什么,我像这样声明了变量,私有列表名称;然而,我在stackoverflow中发现了类似的问题,但对我来说,getItemAtPosition没有为我找到你无法找到getItemAtPosition
,因为它是为ListView而不是为RecyclerView找到的。这在Toast中给了我一个奇怪的结果,比如“queendevelopers.com.nepalibabiesnames”。Name@26868819"@Queen开发人员您的类中的名称是什么??。请提供更多的代码,我不知道实际调用的是什么,我像这样声明了变量,私有列表名称;然而,我在stackoverflow中发现了类似的问题,但对于我来说,getItemAtPosition没有为我找到。您无法找到getItemAtPosition
,因为它是为ListView而不是为RecyclerView提供的。我希望这对我有用。。因为要做这些事情,你需要一个听者,而你已经做到了!!今晚我会试试这个,然后回复你。。感谢您的努力。我按照代码进行了操作,但仍然无法在我执行Toast.makeText(getApplicationContext(),names.get(position).getName()+“”,Toast.LENGTH_SHORT).show()的项目ClickListener上显示所选代码;找不到适合我的where.getName():(我希望这能对我起作用..因为要做这些事情,需要一个McClickListener,而你已经做到了!!今晚我会试试这个,然后回复你..谢谢你的努力。我遵循了代码,但仍然无法在我所做的ItemClickListener Toast.makeText(getApplicationContext(),names.get(position))上显示所选代码.getName()+“”,Toast.LENGTH_SHORT).show();其中找不到适合我的.getName():(