导航抽屉上的SeekBar

时间:2017-07-06 09:39:26

标签: android

我正在尝试在导航栏中使用搜索栏。我的错是什么?在没有导航抽屉的应用程序中没有问题。谢谢。

public class MainActivity extends AppCompatActivity
implements NavigationView.OnNavigationItemSelectedListener {

    TextView textView;
    SeekBar seekBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
    setSupportActionBar(toolbar);

    seekBar = (SeekBar) findViewById(R.id.seekbar);
    textView = (TextView) findViewById(R.id.txtView);

    seekBar.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
        @Override
        public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {

            textView.setText(String.valueOf(progress));
        }

        @Override
        public void onStartTrackingTouch(SeekBar seekBar) {

        }

        @Override
        public void onStopTrackingTouch(SeekBar seekBar) {

        }
    });

enter image description here

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.SeekBar.setOnSeekBarChangeListener(android.widget.SeekBar$OnSeekBarChangeListener)' on a null object reference

1 个答案:

答案 0 :(得分:0)

我认为您的搜索栏位于导航抽屉的标题视图中,您可以:

        NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view);
        navigationView.setNavigationItemSelectedListener(this);

        View header = navigationView.getHeaderView(0);
        profile_name = (TextView) header.findViewById(R.id.profile_name);
        profile_email = (TextView) header.findViewById(R.id.profile_email);
        profile_image = (ImageView) header.findViewById(R.id.imageView);
        setNavigationHeader();

您首先需要获取Header的视图,然后在其中找到您的Seek栏

如果您的视图不在标题中,那么这将无效。

您需要创建自己的自定义导航抽屉