怎样才能传递意图位置

How can pass intent position

大家好,我正在尝试创建一个图像库,但我在意图上遇到了问题,在用户单击图像后会显示吐司消息,但我想通过图像位置传递意图,我该怎么做?

我还想在新的 activity

中创建滑动图像

请大家帮忙...提前致谢...

这是代码:

public class IndianActivity extends AppCompatActivity {

    GridView gridView;

    String[] numberword = { "One","Two","Three","Four","Five","Six","Seven","Eight"};

    int[] numberImage = {R.drawable.testing,R.drawable.testing
            ,R.drawable.testing,R.drawable.testing,R.drawable.testing
            ,R.drawable.testing,R.drawable.testing,R.drawable.testing};

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_indian);

        gridView = findViewById(R.id.grid_view);

        MainAdapter adapter = new MainAdapter(IndianActivity.this,numberword,numberImage);
        gridView.setAdapter(adapter);

        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Toast.makeText(getApplicationContext(),"You Clicked "+numberword[+i],Toast.LENGTH_SHORT).show();
            }
        });


    }
}

这也是我的 MainAdapter 代码:

public class MainAdapter extends BaseAdapter {

    private Context context;
    private LayoutInflater inflater;
    private String[] numberWord;
    private int[] numberImage;
    private View convertView;

    public MainAdapter(Context c,String[] numberWord,int[] numberImage){
        context = c;
        this.numberWord = numberWord;
        this.numberImage = numberImage;


    }
    @Override
    public int getCount() {
        return numberWord.length;
    }

    @Override
    public Object getItem(int i) {
        return null;
    }

    @Override
    public long getItemId(int i) {
        return 0;
    }

    @Override
    public View getView(int i, View convertView, ViewGroup parent) {

        if (inflater == null){
            inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        }
        if (convertView == null) {
            convertView = inflater.inflate(R.layout.row_item, null);
        }

        ImageView imageView = convertView.findViewById(R.id.image_view);
       // TextView textView = convertView.findViewById(R.id.text_view);

        imageView.setImageResource(numberImage[i]);
        //textView.setText(numberWord[i]);
        return convertView;
    }
} 

getView 方法上实现点击监听器。

@Override
public View getView(int i, View convertView, ViewGroup parent) {

    if (inflater == null){
        inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    }
    if (convertView == null) {
        convertView = inflater.inflate(R.layout.row_item, null);
    }

    ImageView imageView = convertView.findViewById(R.id.image_view);
   // TextView textView = convertView.findViewById(R.id.text_view);

    imageView.setImageResource(numberImage[i]);
    //textView.setText(numberWord[i]);

    //----------------------TRY ADDING THIS------------------------------
    itemView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
            Toast.makeText(getApplicationContext(),"You Clicked "+numberword[+i],Toast.LENGTH_SHORT).show();
        }

    return convertView;
}

并删除 onCreate 方法上的侦听器。

请告诉我结果如何。

用这个把文件“放在”你的点击监听器上

Intent i = new Intent(FirstScreen.this, SecondScreen.class);   
String strName = null;
int I=0
i.putExtra("STRING_I_NEED", strName);
i.putExtra("Item_pos", I);

然后,要检索值,请尝试以下操作:

String newString,pos;
if (savedInstanceState == null) {
Bundle extras = getIntent().getExtras();
if(extras == null) {
    newString= null;
} else {
    newString= extras.getString("STRING_I_NEED");
    pos=extras.getString("Item_pos")
}
} else {
newString= (String) savedInstanceState.getSerializable("STRING_I_NEED");
}