我的ListViewFragment
中有一个启动扫描的按钮。我扫描序列号并在我的MainActivities
onActivityResult
方法中获取字符串(我的MainActivity
中还有另一个扫描。我收到字符串,我想将字符串发送回{{1} 1}}在ListViewFragment
中设置它。但是我得到一个NullPointerException,因为我的EditText
想要得到ListViewFragment
字符串为空。
我怎样才能提供我的片段在扫描完串口后调用捆绑包?
片段:
serialFromScan
MainActivity:
inputSerial = (EditText) view.findViewById(R.id.editText_serial);
ImageButton ib = (ImageButton) view.findViewById(R.id.button_scan_serial);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A");
getActivity().startActivityForResult(intent, 11);
Bundle b = getArguments();
String serialFromScan = b.getString("serialFromScan");
Log.d("Seriennummerangekommen?", serialFromScan);
}
});
[...]
FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.scanbutton);
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_MODE", "QR_CODE_MODE");
startActivityForResult(intent,10);
}
});
答案 0 :(得分:2)
在初始化包之后编写startActivityForResult()。 试试这个答案..
inputSerial = (EditText) view.findViewById(R.id.editText_serial);
ImageButton ib = (ImageButton) view.findViewById(R.id.button_scan_serial);
ib.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
intent.putExtra("SCAN_FORMATS", "CODE_39,CODE_93,CODE_128,DATA_MATRIX,ITF,CODABAR,EAN_13,EAN_8,UPC_A");
Bundle b = getArguments();
getActivity().startActivityForResult(intent, 11);
String serialFromScan = b.getString("serialFromScan");
Log.d("Seriennummerangekommen?", serialFromScan);
}
});
答案 1 :(得分:1)
getActivity()。startActivityForResult(intent,11);
Bundle bundle = new Bundle();
bundle.putString("edttext", "From Activity");
// set Fragmentclass Arguments
Fragmentclass fragobj = new Fragmentclass();
fragobj.setArguments(bundle);
并在Fragment onCreateView方法中:
Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
Bundle bundle = this.getArguments();
String strtext = getArguments().getString("edttext");
return inflater.inflate(R.layout.fragment, container, false);
}