Im пытается использовать сканер штрих-кода под названием Zxing и im, сталкиваясь с проблемой, чтобы установить значение в редакторе внутри onActivityResult.EditText.setText - ссылка на нулевой объект onActivityResult в фрагменте
Фрагменты Код:
public class UnidadeTabFragment extends Fragment {
public EditText editarCodigoBarra;
public static final int DIALOG_FRAGMENT = 1;
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.tab_fragmento_unidade,container,false);
EditText editarCodigoBarra = (EditText) v.findViewById(R.id.codigobarraInput);
ImageButton codigoBarraBotao = (ImageButton) v.findViewById(R.id.codigoBarraBotao);
Bundle arguments = getArguments();
Log.i("primeiro" , String.valueOf(arguments));
if(arguments != null)
{
CharSequence codigoBarra = arguments.getCharSequence("codigo");
Log.i("segundo barra" , String.valueOf(arguments));
editarCodigoBarra.setText(codigoBarra);
}
codigoBarraBotao.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent myIntent = new Intent(getActivity(), BarCodeActivity.class);
getActivity().startActivityForResult(myIntent , 12345);
}
});
return v;
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 12345) {
Bundle bundle = this.getArguments();
CharSequence codigoBarra = bundle.getCharSequence("codigo");
Log.d("Activity Resultado", "value: " + codigoBarra);
editarCodigoBarra.setText(codigoBarra);
}
}
BarCode Actitvity:
public class BarCodeActivity extends AppCompatActivity implements ZXingScannerView.ResultHandler {
private ZXingScannerView mScannerView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mScannerView = new ZXingScannerView(this);
setContentView(mScannerView);
}
@Override
public void onResume() {
super.onResume();
mScannerView.setResultHandler(this); // Register ourselves as a handler for scan results.
mScannerView.setAutoFocus(true);
mScannerView.startCamera(); // Start camera on resume
}
@Override
public void onPause() {
super.onPause();
mScannerView.stopCamera(); // Stop camera on pause
}
@Override
public void handleResult(Result rawResult) {
Bundle bundle = new Bundle();
CharSequence codigoString = rawResult.getText();
bundle.putCharSequence("codigo", codigoString);
UnidadeTabFragment unidadeTabFragment = new UnidadeTabFragment();
unidadeTabFragment.setArguments(bundle);
unidadeTabFragment.onActivityResult(12345, 12345, this.getIntent());
finish();
}
}
В LogCat возвращение 'codigobarra' нормально! но когда он пробует установить любое значение на EditText Эрро приходит:
недействительного android.widget.EditText.setText (java.lang.CharSequence)»на нулевой ссылке на объект
Что им делать неправильно ?
Заранее спасибо
Если вы не получаете достаточного количества ответов, это может помочь переписать код, который вы публикуете, чтобы все было на английском языке - ваш код сложнее отслеживать для неамериканских докладчиков. – theFunkyEngineer
'editarCodigoBarra.setText (codigoBarra);' перед этой строкой проверить 'editarCodigoBarra', является ли это null или нет, и сообщите нам об этом. –