2016-08-20 2 views
0

AppCompatActivity의 조각에서 이미지 그리드를 만들기 위해 만든 세 가지 Java 클래스를 모두 붙여 넣고 있지만 아래에 붙여 넣은 오류가 나타납니다.조각을 사용하는 안드로이드 이미지 그리드 뷰

내 주요 활동 :

public class MainActivityFragment extends Fragment 
{ 
    public MainActivityFragment(){ 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
{ 
    ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_main, null); 
    GridView gv1=(GridView)root.findViewById(R.id.grid); 
    gv1.setAdapter(new ImageAdapter(getActivity())); 
    return root; 
} 

}

imageadapter 클래스 :

public class ImageAdapter extends BaseAdapter 
{ 
private Context ctx; 

public ImageAdapter(Context c) 
{ 
    ctx=c; 
} 

@Override 
public int getCount() 
{ 
    return pics.length; 
} 

@Override 
public Object getItem(int position) 
{ 
    return null; 
} 

@Override 
public long getItemId(int position) 
{ 
    return 0; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) 
{ 
    ImageView iv; 
    if (convertView == null) 
    { 
     iv = new ImageView(ctx); 
     iv.setLayoutParams(new GridView.LayoutParams(350,350)); 
     iv.setScaleType(ImageView.ScaleType.FIT_XY); 
     iv.setPadding(4, 4, 4, 4); 
    } 
    else 
    { 
     iv = (ImageView)convertView; 
    } 
    iv.setImageResource(pics[position]); 
    return iv; 

} 

private Integer[] pics={ 
     R.drawable.a,R.drawable.b, 
     R.drawable.c,R.drawable.d, 
     R.drawable.e,R.drawable.f, 
     R.drawable.g,R.drawable.h 
}; 

}

있는 gridview와

public class MainActivity extends AppCompatActivity { 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

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

    if (savedInstanceState == null) { 
     getSupportFragmentManager().beginTransaction() 
       .add(R.id.main_fragment, new MainActivityFragment()) 
       .commit(); 
    } 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

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

    if (id == R.id.action_settings) { 
     return true; 
    } 

    if (id == R.id.action_sort) { 
     showPop(); 
     return true; 
    } 

    return super.onOptionsItemSelected(item); 
} 

public void showPop() 
{ 
    View menuItemView = findViewById(R.id.action_sort); 
    PopupMenu popup = new PopupMenu(MainActivity.this, menuItemView); 
    MenuInflater inflate = popup.getMenuInflater(); 
    inflate.inflate(R.menu.sort_popup, popup.getMenu()); 
    popup.show(); 
} 


} 

조각

는이 오류 로그를 얻고있다 :

08-20 21:50:15.218 16512-16512/com.example.android.mymovieapp  E/AndroidRuntime: FATAL EXCEPTION: main 
                       Process: com.example.android.mymovieapp, PID: 16512 
                      java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.android.mymovieapp/com.example.android.mymovieapp.MainActivity}: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2416) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476) 
                       at android.app.ActivityThread.-wrap11(ActivityThread.java) 
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344) 
                       at android.os.Handler.dispatchMessage(Handler.java:102) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5417) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616) 
                      Caused by: java.lang.IllegalStateException: This Activity already has an action bar supplied by the window decor. Do not request Window.FEATURE_SUPPORT_ACTION_BAR and set windowActionBar to false in your theme to use a Toolbar instead. 
                       at android.support.v7.app.AppCompatDelegateImplV7.setSupportActionBar(AppCompatDelegateImplV7.java:198) 
                       at android.support.v7.app.AppCompatActivity.setSupportActionBar(AppCompatActivity.java:130) 
                       at com.example.android.mymovieapp.MainActivity.onCreate(MainActivity.java:19) 
                       at android.app.Activity.performCreate(Activity.java:6237) 
                       at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1107) 
                       at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2369) 
                       at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2476)  
                       at android.app.ActivityThread.-wrap11(ActivityThread.java)  
                       at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)  
                       at android.os.Handler.dispatchMessage(Handler.java:102)  
                       at android.os.Looper.loop(Looper.java:148)  
                       at android.app.ActivityThread.main(ActivityThread.java:5417)  
                       at java.lang.reflect.Method.invoke(Native Method)  
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:726)  
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)  
+0

'원인 : java.lang.IllegalStateException :이 활동에는 이미 창 데코레이션에 의해 제공되는 작업 표시 줄이 있습니다. Window.FEATURE_SUPPORT_ACTION_BAR을 요청하지 말고 툴바를 사용하려면 테마에서 windowActionBar를 false로 설정하십시오. '라고 말하면됩니다. –

+0

dat을 시도했으나 –

+0

이 링크를 사용해보십시오 http://stackoverflow.com/questions/26515058/this-activity-already-has-an-action-bar-supplied-by-the-window-decor – Shubham

답변

0

그것은 예외 오류입니다. 당신의 코드를 시도/캐치 주변에

java.lang.RuntimeException가을 시도 할 수 없습니다 활동 ComponentInfo {com.example.android.mymovieapp/com.example.android.mymovieapp.MainActivity}을 (를) 시작 : 자바. lang.IllegalStateException :이 활동에는 이미 창 장식으로 제공되는 바 작업이 있습니다. Window.FEATURE_SUPPORT_ACTION_BAR을 요청하지 말고 의 테마에서 툴바를 대신 사용하려면 windowActionBar를 false로 설정하지 마십시오.

관련 문제