Java 如何在Android中使用findViewById()?

Java 如何在Android中使用findViewById()?,java,android,Java,Android,基本上,问题是,当您想要使用“FindViewById”或“GetSystemService”或其他方法时,我不允许这样做 他只让我在主要活动中使用它们,我想知道如何解决这个问题 我是android Studio的新手,我基本上在学习 维护性 片段“Tap1alarmas” 如果您试图在片段中使用findViewById,首先要确保您使用的是onCreateView(),并在最后返回视图 请参见此处的差异: 以下是一个例子: @Override public View onCreateView(

基本上,问题是,当您想要使用“FindViewById”或“GetSystemService”或其他方法时,我不允许这样做

他只让我在主要活动中使用它们,我想知道如何解决这个问题

我是android Studio的新手,我基本上在学习

维护性 片段“Tap1alarmas”
如果您试图在
片段中使用
findViewById
,首先要确保您使用的是
onCreateView()
,并在最后返回视图

请参见此处的差异:

以下是一个例子:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_single_image, parent, false);

    alarm_timepicker = (TimePicker) rootView.findViewById(R.id.TimePicker); 
    // your widgets with rootView prefix

    return rootView;
}

rootView
是本文的重点。因此,如果您想要声明任何小部件(或etc),在本例中使用
rootView
作为前缀,然后通过
findViewById

引用您的id,这些都是上下文中的函数。您必须在上下文中或在上下文中调用它们。使用非常简单的语言:您可以在活动中的任何位置使用findViewById(R.id.your_id),但当您在片段中时,您需要有对视图对象(可从onCreateView方法访问)视图的引用。findViewById(R.id.your_id);对于
getSystemService()
,您可以调用
getActivity().getSystemService()
import android.app.AlarmManager;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
import android.widget.TimePicker;

import java.util.Calendar;


public class tap1alarmas extends Fragment {


AlarmManager alarm_manager;
TimePicker alarm_timepicker;
TextView update_text;
tap1alarmas context;


private MainActivity.SectionsPagerAdapter mSectionsPagerAdapter;

private ViewPager mViewPager;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

this.context = this;

//Inicizaliar alarmmanager
alarm_manager = (AlarmManager) getSystemService(ALARM_SERVICE);

//Inicializar timepicker

alarm_timepicker = (TimePicker) findViewById(R.id.TimePicker);

//Text uptate`enter code here`

update_text = (TextView) findViewById(R.id.update_text);
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup parent, Bundle savedInstanceState) {
    View rootView = inflater.inflate(R.layout.fragment_single_image, parent, false);

    alarm_timepicker = (TimePicker) rootView.findViewById(R.id.TimePicker); 
    // your widgets with rootView prefix

    return rootView;
}