0

我有一个自定义 xml 视图,当点击按钮时,会在主视图中创建一个副本。

Button addButton = (Button) findViewById(R.id.btnAdd);

addButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        LinearLayout newCard = (LinearLayout) getLayoutInflater().inflate(R.layout.vehicle, null);
        cardLayout.addView(newCard);
        final int thisCarId = new Random().nextInt(10000);
    }
});

用户可以根据需要多次点击 addButton,我每次都会生成一个新的 newCard。

每个 newCard 都有一个 ImageButton 和一个 EditText;当点击 ImageButton 时,我使用 Result 启动相机意图:

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, thisCarId);

在这个活动课程的后面,我预计 Camera 活动的结果:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    Log.v("car", "The ID that was returned: " + requestCode);
}

我的日志确实通过 thisCardId 正确确定了 newCard 的哪个实例...但是我如何判断创建了哪个 newCard,以便我可以设置在该 newCard 布局中找到的 ImageButton 以匹配相机照片?分配照片没问题...只是,我不知道分配哪个,因为onActivityResult超出范围,据我所知,我无法为活动分配匿名Override作为一个整体...

4

1 回答 1

1

如果我正确理解您的问题,您可以newCard.setTag(thisCarId)循环遍历具有您正在寻找的标签的孩子的 cardLayout 孩子视图。就像是

           for(int i = 0; i < cardLayout.getChildCount(); i++){
                if((Integer)cardLayout.getChildAt(i).getTag() == cardId){
                    //do something
                }
            }
于 2013-08-02T23:53:12.460 回答