I'm having a NullPointerException error while trying to return the data from a Fragment. The NPE error is fine in this line:
String comentarioFoto = fragment_obj.campoComentarioFoto.getText().toString();
See my activity code:
public class LayoutActivity extends SherlockFragmentActivity {
Fragment1 fragment_obj;
private static final int SELECT_PICTURE = 1;
private String selectedImagePath;
public static final int MEDIA_TYPE_IMAGE = 1;
public static final int MEDIA_TYPE_VIDEO = 2;
private WrapData wd;
private String answer;
File caminhoFoto;
File caminhoVideo;
VideoView videoview;
Spinner campoDepartamento;
Button btnenviaVideo;
Button btnenviaFoto;
private String[] departamentoNome = new String[]{"Assistência Social", "Administração", "Agricultura", "Educação", "Finanças",
"Indústria Comércio e Turismo", "Planejamento e Urbanismo", "Transportes", "Obras e Serviços Públicos e Urbanos"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ActionBar ab = getSupportActionBar();
ab.setDisplayHomeAsUpEnabled(true);
/* Variáveis dos botões do campo foto e Video */
btnenviaFoto = (Button) findViewById(R.id.btn_salvarFoto);
btnenviaVideo = (Button) findViewById(R.id.btn_salvarVideo);
/* Recupera os dados do Fragment */
Fragment1 fragment_obj = (Fragment1)getSupportFragmentManager().findFragmentById(R.id.containerFragment);
String comentarioFoto = fragment_obj.campoComentarioFoto.getText().toString();
System.out.println(comentarioFoto);
}
}
Fragment code:
package br.com.example.souprogresso;
// FRAGMENTO RESPONSAVEL PELO LAYOUT DE FOTO
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.support.v4.app.Fragment;
public class Fragment1 extends Fragment {
EditText campoComentarioFoto;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.layout_fragment_1, container, false);
campoComentarioFoto = (EditText) rootView.findViewById(R.id.edt_comentarioFoto);
//String comentarioFoto = campoComentarioFoto.getText().toString();
return rootView;
}
}
Fragment XML:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:id="@+id/containerFragment"
>
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
>
<ImageView
android:id="@+id/img_camera"
android:layout_width="match_parent"
android:layout_height="120dp"
android:background="#000"
android:src="@drawable/bg"/>
<Button
android:id="@+id/btn_tirarFoto"
android:layout_width="match_parent"
android:layout_height="45dp"
android:onClick="tirarFoto"
android:text="Tirar Foto" />
<Button
android:id="@+id/btn_capturaFoto"
android:layout_width="match_parent"
android:layout_height="45dp"
android:onClick="selecionarFoto"
android:text="Capturar Foto do Celular" />
<Button
android:id="@+id/btn_abrirMapa"
android:layout_width="match_parent"
android:layout_height="45dp"
android:text="Buscar Localização" />
<TextView
android:text="Digite um Comentário"
android:textSize="15sp"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingLeft="15dp"
android:textColor="#000"
/>
<EditText
android:id="@+id/edt_comentarioFoto"
android:layout_width="match_parent"
android:layout_height="72dp"
android:background="#FFF"
android:ems="10"
android:inputType="textMultiLine"
android:hint="Digite um comentário"
/>
<Button
android:id="@+id/btn_salvarFoto"
android:layout_width="match_parent"
android:layout_height="65dp"
android:onClick="salvarBDFoto"
android:text="Enviar Foto"
/>
</LinearLayout>
</ScrollView>