2016-03-24 40 views
-2

我希望我的滚动视图的可见性设置为当我选择我的导航抽屉页面之一时,我尝试使用一些帮助来做到这一点,但得到了nullpointerexecptions,并且出现错误“Can not Resolve方法setVisibility(INT)”和滚动型不能得到解决,使滚动视图在更改导航抽屉页面时丢失

MainActivity

package nota.outlawsindex; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentManager; 
import android.support.v4.widget.DrawerLayout; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.support.v7.widget.Toolbar; 
import android.util.Log; 
import android.view.Menu; 
import android.view.MenuItem; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.Button; 
import android.widget.ListView; 
import android.widget.ScrollView; 
import android.widget.TextView; 
import android.widget.Toast; 

import org.w3c.dom.Text; 

public class MainActivity extends AppCompatActivity { 

private String[] mNavigationDrawerItemTitles; 
private DrawerLayout mDrawerLayout; 
private ListView mDrawerList; 
Toolbar toolbar; 
Scrollview scrollView; 
private CharSequence mDrawerTitle; 
private CharSequence mTitle; 
    android.support.v7.app.ActionBarDrawerToggle mDrawerToggle; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    mTitle = mDrawerTitle = getTitle(); 
    mNavigationDrawerItemTitles =   getResources().getStringArray(R.array.navigation_drawer_items_array); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerList = (ListView) findViewById(R.id.left_drawer); 
    ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView); 


    setupToolbar(); 

    DataModel[] drawerItem = new DataModel[4];//need to update this if you  add start counting at 0 

    drawerItem[0] = new DataModel(R.drawable.ic_connect, "Calculate  Sentence"); 
    drawerItem[1] = new DataModel(R.drawable.ic_fixtures, "Felonies"); 
    drawerItem[2] = new DataModel(R.drawable.ic_table, "Misdemeanors"); 
    drawerItem[3] = new DataModel(R.drawable.ic_drawer, "Infractions"); 
    //add on to the list to create more pages 
    getSupportActionBar().setDisplayHomeAsUpEnabled(false); 
    getSupportActionBar().setHomeButtonEnabled(true); 

    DrawerItemCustomAdapter adapter = new DrawerItemCustomAdapter(this, R.layout.list_view_item_row, drawerItem); 
    mDrawerList.setAdapter(adapter); 
    mDrawerList.setOnItemClickListener(new DrawerItemClickListener()); 
    mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout); 
    mDrawerLayout.setDrawerListener(mDrawerToggle); 
    setupDrawerToggle(); 



} 

private class DrawerItemClickListener implements ListView.OnItemClickListener { 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
     selectItem(position); 
    } 

} 

private void selectItem(int position) { 



    scrollView.setVisibility(View.GONE); 

    Fragment fragment = null; 

    switch (position) { 
     case 0: 
      fragment = new ConnectFragment(); 
      break; 
     case 1: 
      fragment = new FixturesFragment(); 
      break; 
     case 2: 
      fragment = new TableFragment(); 
      break; 
     case 3: 
      fragment = new SelfAddedFragment(); 
      break; 
     //add more cases if you add more pages 

     default: 
      break; 
    } 

    if (fragment != null) { 
     FragmentManager fragmentManager = getSupportFragmentManager(); 
     fragmentManager.beginTransaction().replace(R.id.content_frame,    fragment).commit(); 

     mDrawerList.setItemChecked(position, true); 
     mDrawerList.setSelection(position); 
     setTitle(mNavigationDrawerItemTitles[position]); 
     mDrawerLayout.closeDrawer(mDrawerList); 

    } else { 
     Log.e("MainActivity", "Error in creating fragment"); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // 
    int id = item.getItemId(); 
    // 
    if (mDrawerToggle.onOptionsItemSelected(item)) { 

     return true; 
    } else if (id == R.id.action_settings) { 
     Toast.makeText(getApplicationContext(), "Settings", Toast.LENGTH_SHORT).show(); 
     return true; 
    } 
    Toast.makeText(getApplicationContext(), "Search", Toast.LENGTH_SHORT).show(); 

    return super.onOptionsItemSelected(item); 
} 

@Override 
public void setTitle(CharSequence title) { 
    mTitle = title; 
    getSupportActionBar().setTitle(mTitle); 
} 

@Override 
protected void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    mDrawerToggle.syncState(); 
} 

void setupToolbar() { 
    toolbar = (Toolbar) findViewById(R.id.toolbar); 
    setSupportActionBar(toolbar); 
    //getSupportActionBar().setDisplayShowHomeEnabled(true); 
} 

void setupDrawerToggle() { 
    mDrawerToggle = new android.support.v7.app.ActionBarDrawerToggle(this, mDrawerLayout, toolbar, R.string.app_name, R.string.app_name); 
    //This is necessary to change the icon of the Drawer Toggle upon state change. 
    mDrawerToggle.syncState(); 
} 

}

Activity_Main

<android.support.v4.widget.DrawerLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
android:id="@+id/drawer_layout" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:background="@color/backgroundColor" 
android:visibility="visible"> 
    <RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <RelativeLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:orientation="vertical" 
     android:id="@+id/relativeLayout" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true"> 

     <RelativeLayout 
      android:id="@+id/container_toolbar" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical"> 

     </RelativeLayout> 


     <FrameLayout 
      android:id="@+id/content_frame" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:layout_below="@+id/container_toolbar" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true"> 

     </FrameLayout> 

     <include 
      android:id="@+id/toolbar" 
      layout="@layout/toolbar" 
      android:layout_gravity="right|top" 
      android:layout_below="@+id/scrollView" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true" 
      android:layout_marginLeft="26dp" 
      android:layout_marginStart="26dp" /> 

     <ScrollView 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:id="@+id/scrollView" 
      android:layout_centerVertical="true" 
      android:layout_alignParentLeft="true" 
      android:layout_alignParentStart="true"> 

      <RelativeLayout 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_alignBottom="@+id/content_frame" 
       android:layout_alignParentLeft="true" 
       android:layout_alignParentStart="true" 
       android:id="@+id/relativeLayout2" 
       android:focusable="false"> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceSmall" 
        android:text="    Welcome to The Outlaw&apos;s Index! An app designed for individuals who want to educate themselves with knowledge regarding different types of offenses in the United States. Currently this app is directed towards individuals in the United States, but a Canadian version may be released in upcoming months. This app gives users the tools and resources to research different classes of offenses and the repercussions one would receive if convicted. Although this app is informative, advice from law enforcement, attorneys, and other members of the law should be considered more accurate as it may suit your personal needs regarding a specific case. To start off, choose any of the classes on the left hand side, or calculate a sentence and the repercussions that would follow." 
        android:id="@+id/textView2" 
        android:textColor="#ffffff" 
        android:paddingLeft="10dp" 
        android:paddingRight="10dp" 
        android:password="false" 
        android:phoneNumber="false" 
        android:singleLine="false" 
        android:layout_alignParentTop="true" 
        android:layout_centerHorizontal="true" 
        android:layout_marginTop="33dp" /> 

       <TextView 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:textAppearance="?android:attr/textAppearanceLarge" 
        android:text="Welcome" 
        android:id="@+id/textView" 
        android:textColor="#ffffff" 
        android:layout_alignParentLeft="true" 
        android:layout_alignParentStart="true" 
        android:layout_marginLeft="27dp" 
        android:layout_marginStart="27dp" /> 

      </RelativeLayout> 
     </ScrollView> 

    </RelativeLayout> 

</RelativeLayout> 

<ListView 
    android:id="@+id/left_drawer" 
    android:layout_width="240dp" 
    android:layout_height="match_parent" 
    android:layout_gravity="start" 
    android:background="@color/menuBackgroundColor" 
    android:choiceMode="singleChoice" 
    android:divider="@color/colorAccent" 
    android:dividerHeight="1dp" 
    android:paddingTop="15dp"/> 
<!-- because there is no header in this one I am using android:paddingTop="15dp" 
    to push the menu below the level of the translucent top bar.--> 

这是API 15,也即时通讯新的Android开发

回答

0

改变这一行:

ScrollView scrollView = (ScrollView) findViewById(R.id.scrollView); 

这一行:

scrollView = (ScrollView) findViewById(R.id.scrollView); 
+0

我得到一个不兼容的类型错误,“需要滚动查看”“找到android.widget.ScrollView;”,我的setVisibility也无法解析,有帮助吗? –

+0

这里发布scrollView元素来自activity_main.xml –

+0

更新原来​​ –