Метод findViewById(int) не определен для типа Получить фрагмент данных для датчика акселерометра.

Я делаю свой проект для получения данных с помощью датчика акселерометра на платформе Android. У меня есть коды ошибок в 3 последних кодах строк. Именно ошибка заключается в том, что findViewById не для получения фрагмента данных. Итак, как я могу использовать findviewbyId во фрагменте для получения данных датчика акселерометра? Большое спасибо за ответ :)

import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.hardware.Sensor;
import android.hardware.SensorManager;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.TextureView;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.hardware.Sensor;
import android.hardware.SensorEvent;
import android.hardware.SensorManager;
import android.hardware.SensorEventListener;


public class GetDataFragment extends Fragment implements SensorEventListener {

//definisi variabel-variabel
//Sensor accelerometer;
private Activity parent;
TextView koordinatX;
TextView koordinatY;
TextView koordinatZ;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    return inflater.inflate(R.layout.get_data, container, false);
}

private SensorManager sensorManager;
private Sensor sensor;
//TextView koordinatX;


    @Override
public void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);

     parent = getActivity();


    sensorManager = (SensorManager) parent.getSystemService(Context.SENSOR_SERVICE);
    sensor = sensorManager.getSensorList(Sensor.TYPE_ACCELEROMETER).get(0);


    koordinatX = (TextView)findViewById(R.id.coordinatx);
    koordinatY = (TextView)findViewById(R.id.coordinaty);
    koordinatZ = (TextView)findViewById(R.id.coordinatz);


}

person user2080041    schedule 17.02.2013    source источник


Ответы (1)


Вы должны раздуть свой Views в onCreateView():

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.get_data, container, false);
    koordinatX = (TextView)rootView.findViewById(R.id.coordinatx);
    koordinatY = (TextView)rootView.findViewById(R.id.coordinaty);
    koordinatZ = (TextView)rootView.findViewById(R.id.coordinatz);
    return rootView;
}

Надеюсь это поможет.

person Egor    schedule 17.02.2013
comment
Я только что сделал ваше предложение, как и код ниже. View rootView = inflater.inflate(R.layout.get_data,container,false); //строка 6 koordinatX = (TextView)rootView.findViewById(R.id.coordinatx); koordinatY = (TextView)rootView.findViewById(R.id.coordinaty); koordinatZ = (TextView)rootView.findViewById(R.id.coortinatz); вернуть rootView; } ошибка недостижима в строке 6 - person user2080041; 17.02.2013
comment
Скопируйте-вставьте код с нуля как есть, вы ошиблись. - person Egor; 17.02.2013
comment
Хорошо, я только что сделал это, но все еще ошибка в public void onCreate, который содержит: koordinatX = (TextView)findViewById(R.id.coordinatx); koordinatY = (TextView)findViewById(R.id.coortinaty); koordinatZ = (TextView)findViewById(R.id.coordinaz); - person user2080041; 17.02.2013