【问题标题】:Cardview onclick opens a new activityCardview onclick 打开一个新活动
【发布时间】:2016-03-30 20:28:11
【问题描述】:

点击一张卡片打开一个活动,然后点击另一张卡片打开另一个活动,依此类推。有没有办法只创建一个活动并识别点击的卡片的 ID 并显示其相应的数据?

【问题讨论】:

  • 1.为每个卡片视图设置 id。 2.实现View.onClickListener 3.覆盖onClick方法4.比较Id 5.制作意图
  • 当然有。使用Intent.putExtra 传递一些数据(例如,cardview 的位置、id、其中的文本等等)
  • 感谢您的解决方案

标签: android android-activity onclicklistener android-recyclerview android-cardview


【解决方案1】:

您可以使用Intent.putExtra 发送id,然后在您的活动中使用Intent.getIntExtra 获取它并在活动中提供您的数据

如果您使用ListView,以下是发送 id 和索引到 MyActivity 的示例:

    AdapterView.OnItemClickListener onItemClickListener = new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Intent intent = new Intent(getApplicationContext(),MyActivity.class);
        intent.putExtra("id",view.getId());
        intent.putExtra("index",position);
        startActivity(intent);
    }
};

您可以像这样在 MyActivity 中检索它:

Intent intent = new Intent(getIntent());
int id = intent.getIntExtra("id",0);
int index = intent.getIntExtra("index",0);

【讨论】:

  • 感谢@Amir_P 的解决方案,如果您有示例,请再次发布,谢谢
  • 我已经编辑了我的帖子。如果它可以帮助你接受我的回答@Ace
【解决方案2】:
public class FirstActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_first);
    }

    public void card(View view) {
        Intent intent = new Intent(FirstActivity.this, ActivitymainActivity.class);
        startActivity(intent);
    }
}

【讨论】:

  • 请停止重复答案,尤其是你懒得写解释。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-07-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多