java - android gridview子项启动 Activity onclick

标签 java android

public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    if (position == 0) {
        Intent i = new Intent(this,second.class);
        startActivity(i);
    } else if (position == 1) {
        Intent i1 = new Intent(this,second.class);
        startActivity(i);
    }
}

我知道这个方法,但比如说我有 20 个子项目,所以我需要 20 个 Activity !我该如何做到这一点,以便只传入一个 Activity ,但其中的数据根据​​单击的子项而变化(其中的数据我指的是简单的 Textviews )抱歉我的英语非常糟糕

最佳答案

您可以为 Activity Intent 设置额外的内容来识别您来自哪里:

   public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

    Intent i = new Intent(this, second.class);
    i.putExtra("position", position);
    startActivity(i);
}

然后在你的 Activity 中你可以得到这样的 Intent :

int position;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity); //if your activities have different layouts depending the given position, you can move this line inside the switch function
    ...
    if(getIntent().getExtras() != null) {
        position = getIntent().getExtras().getInt("position", 0);
    }
    switch(position){
        case 1:
            //do something
            break;
        case 2:
            //do another thing
            break;
        default:
            //default behaviour
            break;
    }
}

关于java - android gridview子项启动 Activity onclick,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42930570/

相关文章:

java - 为什么对 List 进行排序时,compareTo 参数始终为 null

java - 如何在android wear中实现手势识别

android - 如何覆盖谷歌眼镜的相机按钮

java - 监控流程或方法所花费的时间

java - 使用TestNG获取@Factory注解的类中传递的参数值

java - JPA类之间的关系,指的是它们的接口(interface)

java - 如何正确地将String转换为ArrayList?

c# - Android 上的数据 GridView

Java Vaadin : CSV to Grid

java - mysql/java 字符集问题