Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Intent从对象的ArrayList和ListView中删除对象_Android_Listview_Android Intent - Fatal编程技术网

Android 使用Intent从对象的ArrayList和ListView中删除对象

Android 使用Intent从对象的ArrayList和ListView中删除对象,android,listview,android-intent,Android,Listview,Android Intent,我有一份练习表。当您单击一个练习时,将显示该练习的详细信息(来自sqlite的信息,使用意图进行通信)。还有一个用于删除练习的按钮,这是我的问题,如何使用该按钮删除练习 下面是一些可能对解决我的问题有用的代码。我尝试将我的ID发送到ListDetails,然后单击按钮将其发送回ListXercisesFragment: ListXercisesFragment类 private ArrayList<Exercise> lExercise=new ArrayList<Exerc

我有一份练习表。当您单击一个练习时,将显示该练习的详细信息(来自sqlite的信息,使用意图进行通信)。还有一个用于删除练习的按钮,这是我的问题,如何使用该按钮删除练习

下面是一些可能对解决我的问题有用的代码。我尝试将我的ID发送到ListDetails,然后单击按钮将其发送回ListXercisesFragment:

ListXercisesFragment类

 private ArrayList<Exercise> lExercise=new ArrayList<Exercise>();
    private CustomListAdapter dataAdapter;
    private static  final int REQUEST_CODE=100;
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
               public void onItemClick(AdapterView<?> parent,View view,int position,long id){
                   Exercise exercise=(Exercise) listView.getItemAtPosition(position);                
                   Intent intent = new Intent(getContext(),ListDetail.class);
                   intent.putExtra("id",exercise.getId());
                   intent.putExtra("name",exercise.getName());
                   intent.putExtra("series",exercise.getSeries());
                   intent.putExtra("reps",exercise.getReps());
                   intent.putExtra("weights",exercise.getWeights());
                   intent.putExtra("notes",exercise.getNotes());
                   startActivityForResult(intent,REQUEST_CODE);

               }
       });
@Override
    public void onActivityResult(int requestCode,int resultCode,Intent data){
        if(requestCode==REQUEST_CODE){
            if(resultCode==getActivity().RESULT_OK){
                long id=data.getLongExtra("id",-1);
                if(id!=-1){
                    deleteExerciseWithID(id);
                }
            }
        }

        super.onActivityResult(requestCode,resultCode,data);
    }


    private void deleteExerciseWithID(long id){
        for(Exercise e:lExercise){
            if( e.getId()==id ){
                dbHelper.deleteRowWithId(id);
                lExercise.remove(e);
                dataAdapter.notifyDataSetChanged();
            }
        }
    }
public class ListDetail extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.list_detail);

    final long id=getIntent().getLongExtra("id",-1);
    String name=getIntent().getStringExtra("name");
    int series=getIntent().getIntExtra("series",-1);
    int reps=getIntent().getIntExtra("reps",-1);
    int weights=getIntent().getIntExtra("weights",-1);

    String notes=getIntent().getStringExtra("notes");
    TextView txtName=(TextView) findViewById(R.id.detail_name);
    TextView txtSeries=(TextView) findViewById(R.id.detail_series);
    TextView txtReps=(TextView) findViewById(R.id.detail_reps);
    TextView txtWeights=(TextView) findViewById(R.id.detail_weights);
    TextView txtNotes=(TextView) findViewById(R.id.detail_notes);

    txtName.setText(name);
    txtSeries.setText(Integer.toString(series));
    txtReps.setText(Integer.toString(reps));
    txtWeights.setText(Integer.toString(weights));
    txtNotes.setText(notes);

    Button btnDelete=(Button) findViewById(R.id.btn_delete);
    btnDelete.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View v){
            Intent intent=new Intent();
            intent.putExtra("id",id);
            setResult(RESULT_OK,intent);
            finish();
        }
    });

}

感谢您提供的任何帮助,我希望这会很容易:)

可能未调用“活动结果”中的您的片段。你应该从包含碎片的活动的on activity结果重定向抱歉,我不明白。你能给我示例代码吗?我通过将id类型更改为int解决了这个问题。不知道为什么Long不起作用。无论如何,谢谢你的帮助!