Tôi có một hoạt động chính, bên trong có một đoạn với chế độ xem hình ảnh. Khi chế độ xem hình ảnh này được nhấp, một hoạt động mới bắt đầu có chứa chế độ xem danh sách. Tôi muốn trả lại vị trí (chỉ mục) mà người dùng nhấp vào chế độ xem danh sách này, quay lại đoạn.Làm cách nào để gửi dữ liệu từ một hoạt động đến phân đoạn gốc?
Fragment Mã
package com.example.kedee.testgradle;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;
/**
* A simple {@link Fragment} subclass.
*/
public class ASKFragment extends Fragment implements View.OnClickListener{
private Context context;
private View rootView;
private int pos;
public ASKFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
// Inflate the layout for this fragment
rootView= inflater.inflate(R.layout.fragment_ask, container, false);
context=inflater.getContext();
setListeners();
return rootView;
}
void setListeners(){
ImageView catIcon=(ImageView)rootView.findViewById(R.id.cat_icon);
catIcon.setOnClickListener(this);
}
@Override
public void onClick(View v) {
int vID=v.getId();
if(vID==R.id.cat_icon){
Intent intent=new Intent(getActivity(),ASK.class);
getActivity().startActivity(intent);
}
}
}
Mã của Hoạt động được nhận được gọi là từ đoạn này. (ASK hoạt động)
package com.example.kedee.testgradle;
import android.app.Fragment;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
public class ASK extends AppCompatActivity {
private int index;
private String[] catNames= {"Acad","Emer","Tech","Exam","Station","Finance","Medical","Place","Sports" ,
"Others" };
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ask);
ListView listView=(ListView)findViewById(R.id.ask_cat_listView);
listView.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_multiple_choice,catNames));
listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener(){
public void onItemClick(AdapterView<?> listView, View v, int pos, long id){
index=pos;
//code to return back this index to the parent fragment?
}
});
}
}
Lưu vị trí này trong phầnPrafrences. – HassanUsman
@HassanUsman NO! 'startActivityForResult' là trường hợp sử dụng thích hợp ở đây –
bạn có thể làm bằng cách sử dụng startActivityfor Result –