0

我有两个活动,首先我有按钮添加,然后通过单击此按钮将意图发送到第二个活动。在第二个活动中,我有两个 EditText 视图和保存按钮,按下保存后我返回到第一个活动并在 onActivityResult 函数 TextView 和两个按钮中创建 - 编辑和去。当我按下这些按钮时,什么也没有发生。

这是我的代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if(requestCode == AddingRecipe)
    {
        if(resultCode == RESULT_OK)
        {
            LinearLayout ll2 = new LinearLayout(this);
            ll2.setOrientation(LinearLayout.HORIZONTAL);
            TextView tv = new TextView(this);
            tv.setId(id);
            tv.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
            String disease = data.getStringExtra(AddEditRecipesActivity.Disease);
            String doctor = data.getStringExtra(AddEditRecipesActivity.Doctor);             
            tv.setText(disease +"\nВрач: "+ doctor);
            ll2.addView(tv);
            ImageButton edit = new ImageButton(this);
            edit.setId(id);
            edit.setClickable(true);
            edit.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    ViewGroup parent = (ViewGroup)LayoutInflater.from(RecipesActivity.this).inflate(R.layout.activity_recipes, null);
                    for (int i = 0; i < parent.getChildCount(); i++) {
                        View child = parent.getChildAt(i);
                        if(child.getClass() == TextView.class && child.getId() == v.getId())
                        {
                        TextView tv2 = (TextView)child;
                        Intent i3 = new Intent(RecipesActivity.this, AddEditRecipesActivity.class);
                        i3.addFlags(EditingRecipe);
                        i3.putExtra(EditRecipe, tv2.getText().toString());
                        startActivityForResult(i3, EditingRecipe);
                        }
                    }
                }
            });
            edit.setBackgroundResource(R.drawable.edit);
            ll2.addView(edit);
            id = id + 1;
            ImageButton go = new ImageButton(this);
            go.setId(id);
            go.setClickable(true);
            go.setBackgroundResource(R.drawable.go);
            go.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    ViewGroup parent = (ViewGroup)LayoutInflater.from(RecipesActivity.this).inflate(R.layout.activity_recipes, null);
                    for (int i = 0; i < parent.getChildCount(); i++) {
                        View child = parent.getChildAt(i);
                        if(child.getClass() == TextView.class && child.getId() == v.getId())
                        {
                        TextView tv2 = (TextView)child;
                        Intent i3 = new Intent(RecipesActivity.this, MedicineActivity.class);
                        i3.putExtra(ShowRecipe, tv2.getId());
                        RecipesActivity.this.startActivity(i3);
                        }
                    }
                }
            });
            id = id + 1;
            ll2.addView(go);
            ll.addView(ll2);
        }
    }
}

我的错误是什么?当我将 onClickListener 从函数放到 onClick 时,我的应用程序崩溃了。

谢谢。

更新:调试器进入 OnClick 功能。可能是 OnClick 函数循环中的问题。我用相同的 ID 识别我的 TextView 和编辑按钮,并且在一个循环中,我在所有具有按钮 ID 的 Activity 视图中搜索我的 TextView。然后它再次进入第二个活动以在 TextView 中编辑数据。但我不明白,这有什么问题。

4

0 回答 0