onActivityResult中的onClickListener不起作用

时间:2013-08-16 20:38:34

标签: android android-intent onclicklistener onactivityresult

我有两个活动,首先我有按钮添加,然后点击这个按钮我将意图发送到第二个活动。在第二个活动中,我有两个EditText视图和Save按钮,按下save后我返回第一个activity并在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中编辑数据。但我无法理解,它有什么问题。

0 个答案:

没有答案