2016-04-29 12 views
-1

2つのフラグメントアクティビティを追加しようとしていますが、AppCompatActivityを使用する必要があります。そのため、AppCompatActivityを追加すると、プログラムは停止します。どうすればこの問題を解決できますか?AppCompatActivityを2つのフラグメントに実装するにはどうすればよいですか?

マイCombineFragmentActivity.java

import android.graphics.Color; 
import android.os.Bundle; 
import android.support.v4.app.Fragment; 
import android.support.v4.view.PagerAdapter; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.util.TypedValue; 
import android.view.Gravity; 
import android.widget.RelativeLayout; 
import android.widget.TextView; 

import java.util.List; 
import java.util.Vector; 

/** 
* Created by KHas on 29.04.2016. 
*/ 
public class CombineFragmentActivity extends AppCompatActivity { 
    private PagerAdapter mPagerAdapter; 

    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.combine_fragment_activity); 

     initialisePaging(); 


    } 
    private void initialisePaging() { 

     List<Fragment> fragments = new Vector<Fragment>(); 
     fragments.add(Fragment.instantiate(this,StartingTestActivity.class.getName())); 
     fragments.add(Fragment.instantiate(this,ProfileActivity.class.getName())); 
     mPagerAdapter = new PagerAdapter1(this.getSupportFragmentManager(),fragments); 

     ViewPager pager = (ViewPager)findViewById(R.id.viewpager); 
     pager.setAdapter(mPagerAdapter); 
    } 
} 

マイStartingTestActivity.java //最初のフラグメント

import android.graphics.Color; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.support.v4.view.ViewPager; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AppCompatActivity; 
import android.util.TypedValue; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.RelativeLayout; 
import android.widget.Spinner; 
import android.widget.TextView; 

import java.util.List; 
import java.util.Vector; 


public class StartingTestActivity extends Fragment implements AdapterView.OnItemSelectedListener { 
    private Spinner spinner; 
    ArrayAdapter<CharSequence> adapter; 



    public StartingTestActivity() { 
     // Required empty public constructor 
    } 


    public static StartingTestActivity newInstance() { 
     StartingTestActivity fragment = new StartingTestActivity(); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
    } 

    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, 
          Bundle savedInstanceState) { 
     // Inflate the layout for this fragment 
     return inflater.inflate(R.layout.activity_startingtest, container, false); 
    } 

    @Override 
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 
     spinner = (Spinner)view.findViewById(R.id.spinner); 
     adapter = ArrayAdapter.createFromResource(getActivity(),R.array.simple_spinner_dropdown_item,R.layout.spinner_item); 
     adapter.setDropDownViewResource(R.layout.spinner_dropdown_item); 

     spinner.setAdapter(adapter); 
     spinner.setOnItemSelectedListener(this); 

     Typeface ubuntu_MI = Typeface.createFromAsset(getActivity().getAssets(),"Ubuntu-MI.ttf"); 
     Typeface ubuntu_L = Typeface.createFromAsset(getActivity().getAssets(),"Ubuntu-L.ttf"); 
     Typeface ubuntu_R = Typeface.createFromAsset(getActivity().getAssets(),"Ubuntu-R.ttf"); 

     TextView info = (TextView) view.findViewById(R.id.textView6); 
     TextView question = (TextView) view.findViewById(R.id.textView7); 

     info.setTypeface(ubuntu_R); 
     question.setTypeface(ubuntu_R); 


     // Get the ActionBar 
     android.support.v7.app.ActionBar ab = ((AppCompatActivity)getActivity()).getSupportActionBar(); 


     // Create a TextView programmatically. 
     TextView tv = new TextView(getActivity()); 

     // Create a LayoutParams for TextView 
     RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.MATCH_PARENT, // Width of TextView 
       RelativeLayout.LayoutParams.WRAP_CONTENT); // Height of TextView 

     // Apply the layout parameters to TextView widget 
     tv.setLayoutParams(lp); 

     // Set text to display in TextView 
     // This will set the ActionBar title text 
     tv.setText("Anasayfa"); 

     // Set the text color of TextView 
     // This will change the ActionBar title text color 
     tv.setTextColor(Color.parseColor("#FFF5EE")); 

     // Center align the ActionBar title 
     tv.setGravity(Gravity.CENTER_HORIZONTAL); 

     // Set the serif font for TextView text 
     // This will change ActionBar title text font 
     tv.setTypeface(ubuntu_MI); 

     // Underline the ActionBar title text 
     // tv.setPaintFlags(tv.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG); 

     // Set the ActionBar title font size 
     tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP,24); 

     // Display a shadow around ActionBar title text 
     //tv.setShadowLayer(
     //  1.f, // radius 
     // 2.0f, // dx 
     // 2.0f, // dy 
     // Color.parseColor("#FF8C00") // shadow color 
     //); 

     // Set the ActionBar display option 
     ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

     // Finally, set the newly created TextView as ActionBar custom view 
     ab.setCustomView(tv); 
    } 

    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 
     switch (position) { 
      case 0: 
       // Whatever you want to happen when the first item gets selected 
       break; 
      case 1: 
       // Whatever you want to happen when the second item gets selected 
       break; 
      case 2: 
       // Whatever you want to happen when the thrid item gets selected 
       break; 

     } 
    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 

    } 
} 

マイProfileActivity.java // 2番目のフラグメント

import android.content.Intent; 
import android.graphics.Color; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.NavUtils; 
import android.support.v7.app.ActionBar; 
import android.support.v7.app.AppCompatActivity; 
import android.util.TypedValue; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.AdapterView; 
import android.widget.ArrayAdapter; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.Spinner; 
import android.widget.TextView; 
import android.widget.Toast; 


public class ProfileActivity extends Fragment implements AdapterView.OnItemSelectedListener { 
    public ProfileActivity() { 
     // Required empty public constructor 
    } 


    public static ProfileActivity newInstance() { 
     ProfileActivity fragment = new ProfileActivity(); 
     return fragment; 
    } 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setHasOptionsMenu(true); 
    } 

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 

     View rootView = inflater.inflate(R.layout.activity_profile, container, false); 
     return rootView; 
    } 

    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { 
     super.onViewCreated(view, savedInstanceState); 


     Typeface ubuntu_MI = Typeface.createFromAsset(getActivity().getAssets(),"Ubuntu-MI.ttf"); 
     Typeface ubuntu_L = Typeface.createFromAsset(getActivity().getAssets(),"Ubuntu-L.ttf"); 
     Typeface ubuntu_R = Typeface.createFromAsset(getActivity().getAssets(),"Ubuntu-R.ttf"); 

     TextView info = (TextView) view.findViewById(R.id.textView6); 
     TextView question = (TextView) view.findViewById(R.id.textView7); 

     info.setTypeface(ubuntu_R); 
     question.setTypeface(ubuntu_R); 


     // Get the ActionBar 
     android.support.v7.app.ActionBar ab = ((AppCompatActivity)getActivity()).getSupportActionBar(); 


     // Create a TextView programmatically. 
     TextView tv = new TextView(getActivity()); 

     // Create a LayoutParams for TextView 
     RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
       RelativeLayout.LayoutParams.MATCH_PARENT, // Width of TextView 
       RelativeLayout.LayoutParams.WRAP_CONTENT); // Height of TextView 

     // Apply the layout parameters to TextView widget 
     tv.setLayoutParams(lp); 

     // Set text to display in TextView 
     // This will set the ActionBar title text 
     tv.setText("Anasayfa"); 

     // Set the text color of TextView 
     // This will change the ActionBar title text color 
     tv.setTextColor(Color.parseColor("#FFF5EE")); 

     // Center align the ActionBar title 
     tv.setGravity(Gravity.CENTER_HORIZONTAL); 

     // Set the serif font for TextView text 
     // This will change ActionBar title text font 
     tv.setTypeface(ubuntu_MI); 

     // Underline the ActionBar title text 
     // tv.setPaintFlags(tv.getPaintFlags()| Paint.UNDERLINE_TEXT_FLAG); 

     // Set the ActionBar title font size 
     tv.setTextSize(TypedValue.COMPLEX_UNIT_DIP,24); 

     // Display a shadow around ActionBar title text 
     //tv.setShadowLayer(
     //  1.f, // radius 
     // 2.0f, // dx 
     // 2.0f, // dy 
     // Color.parseColor("#FF8C00") // shadow color 
     //); 

     // Set the ActionBar display option 
     ab.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 

     // Finally, set the newly created TextView as ActionBar custom view 
     ab.setCustomView(tv); 
    } 
    public boolean onOptionsItemSelected(MenuItem item) { 
    //Action Bar' daki settings kısmına basıldığında ne yapacağını söylüyoruz. 
     if(item.getItemId() == R.id.settings){ 
      Toast.makeText(getActivity(), "Ayarlara basıldı", Toast.LENGTH_SHORT).show(); 
     } 

     return super.onOptionsItemSelected(item); 
    } 

    @Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
     inflater = getMenuInflater(); 
     inflater.inflate(R.menu.menu_profile_activity, menu); 
     super.onCreateOptionsMenu(menu, inflater); 
    } 

    private MenuInflater getMenuInflater() { 
     return null; 
    } 


    @Override 
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { 

    } 

    @Override 
    public void onNothingSelected(AdapterView<?> parent) { 

    } 

} 
が行うよう

combine_fragment_activity.xml

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

</LinearLayout> 

ERROR

ERROR

+0

フラグメンテーションをアクティビティに追加します。あなたは断片に活動または活動として断片を実装しません。 –

答えて

0

ProfileActivityは、Fragment、ないAppCompatActivityを拡張する必要があります。

また、わかりにくいものに名前を変更することをおすすめします。 ProfileFragmentおよびStartingTestFragmentのようになります。

+0

私のコードを編集しました。あなたはそれらを見てみることができますか?静止画が停止します。間違いはどこですか? –

+0

あなたはエラーを通知してくれますか? – Nathanael

+0

質問に編集されたエラーがあります。 –

関連する問題