Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何将包含字符串数据的选定行显示到toast中?_Android_Arrays - Fatal编程技术网

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():(