我有两个活动,首先我有按钮添加,然后通过单击此按钮将意图发送到第二个活动。在第二个活动中,我有两个 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 中编辑数据。但我不明白,这有什么问题。