2016-02-11 3 views
0

Я пытаюсь вызвать фрагмент из активности, но макет фрагмента не заменяет действие, это похоже на сбор фрагмента на нем, поэтому они появляются оба из них. Как я могу заменить его, он не работает здесь являетсядействие не заменяется на фрагмент

activity.java

public class AllTasks extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_all_tasks); 
     final Button add; 
     final EditText text; 
     final ListView list; 
     add = (Button) findViewById(R.id.addbutton); 
     list = (ListView) findViewById(R.id.listView); 

     // public void onClick(View view) { 
     ParseObject showlist = new ParseObject("ShowAllTasks"); 
     showlist.put("TaskNames", showlist); 

     showlist.saveInBackground(new SaveCallback() { 
      public void done(ParseException e) { 
       Toast.makeText(AllTasks.this, "Saved", Toast.LENGTH_LONG).show(); 
       ParseQuery<ParseObject> query = ParseQuery.getQuery("ShowAllTasks"); 
       // query.whereEqualTo("playerName", "Dan Stemkoski"); 
       query.findInBackground(new FindCallback<ParseObject>() { 
        public void done(List<ParseObject> tasklist, ParseException e) { 
         if (e == null) { 
          ArrayList<String> array = new ArrayList<String>(); 
          for (ParseObject j : tasklist) { 
           array.add(j.getString("TaskNames")); 
          } 
          ArrayAdapter adapter = new ArrayAdapter(AllTasks.this, android.R.layout.simple_list_item_1, array); 
          list.setAdapter(adapter); 
          // Log.d("score", "Retrieved " + scoreList.size() + " scores"); 
         } else { 
          Log.d("score", "Error: " + e.getMessage()); 
         } 
        } 
       }); 
      } 
     }); 
     add.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View view) { 
             Fragment frag; 
             FragmentManager fm = AllTasks.this.getFragmentManager(); 
             FragmentTransaction ft = fm.beginTransaction(); 
             frag = new AddTaskFragment(); 
             //AddTaskFragment llf = new AddTaskFragment(); 
             ft.replace(R.id.alltasks, frag); 
             ft.addToBackStack(null); 
             ft.commit(); 
            } 
            //Intent myIntent = new Intent(AllTasks.this , AddTaskFragment.class); 
            //startActivity(myIntent); 
           }); 
    } 
    // }); 
} 

Вот это XML

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
android:paddingBottom="@dimen/activity_vertical_margin" 
tools:context="info.androidhive.slidingmenu.AllTasks" 
android:id="@+id/alltasks"> 

<TextView 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:textAppearance="?android:attr/textAppearanceMedium" 
    android:text="YourTasks :" 
    android:id="@+id/textViewyourtasks" 
    android:layout_alignParentStart="true" /> 

<ListView 
    android:layout_width="wrap_content" 
    android:layout_height="386dp" 
    android:id="@+id/listView" 
    android:clickable="true" 
    android:layout_alignParentStart="true" 
    android:layout_below="@+id/deletebutton" 
    android:layout_alignEnd="@+id/deletebutton" 
    android:layout_gravity="center_horizontal|bottom" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Add" 
    android:id="@+id/addbutton" 
    android:layout_alignParentTop="true" 
    android:layout_toStartOf="@+id/deletebutton" 
    android:layout_gravity="right|top" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Delete" 
    android:id="@+id/deletebutton" 
    android:layout_alignParentEnd="true" 
    android:layout_alignTop="@+id/textViewyourtasks" 
    android:layout_gravity="center_horizontal|top" /> 

фрагмент

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

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

     View rootView = inflater.inflate(R.layout.fragment_add_task, container, false); 

     Button add; 
     final EditText tasktext; 
     final EditText taskdate; 
     final EditText tasknote; 
     taskdate = (EditText) rootView.findViewById(R.id.editTextDate); 
     tasktext = (EditText) rootView.findViewById(R.id.editTexttaskname); 
     tasknote = (EditText) rootView.findViewById(R.id.editTextnote); 

     add = (Button) rootView.findViewById(R.id.addbutton); 

     add.setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View view) { 
             ParseObject showlist = new ParseObject("ShowAllTasks"); 
             showlist.put("TaskNames", tasktext.getText().toString()); 
             showlist.put("Date", taskdate.getText().toString()); 
             showlist.put("Note", tasknote.getText().toString()); 
             showlist.saveInBackground(new SaveCallback() { 
              @Override 
              public void done(ParseException e) { 
               taskdate.setText(""); 
               tasknote.setText(""); 
               tasktext.setText(""); 
               Toast.makeText(getActivity(), "Saved", Toast.LENGTH_LONG).show(); 
               Intent myIntent = new Intent(getActivity(), AllTasks.class); 
               getActivity().startActivity(myIntent); 

              } 
             }); 
            } 
           } 
     ); 
     return rootView; 
    } 
} 

fragment.xml

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
android:layout_height="match_parent" 
tools:context="info.androidhive.slidingmenu.AddTaskFragment" 
android:id="@+id/fo"> 

<!-- TODO: Update blank fragment layout --> 
<LinearLayout 
    android:orientation="vertical" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:longClickable="false"> 

    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/editTextDate" 
     android:hint="Enter task date " 
     android:layout_gravity="center_vertical" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editTextnote" 
     android:hint="Enter any note " 
     android:layout_gravity="left" 
     android:layout_alignBottom="@+id/editTexttaskname" 
     android:layout_alignEnd="@+id/editTextDate" /> 

    <EditText 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/editTexttaskname" 
     android:hint="Enter task name here " 
     android:layout_below="@+id/editTextDate" 
     android:layout_centerHorizontal="true" 
     android:layout_marginTop="0dp" /> 

    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="@string/AddButton" 
     android:id="@+id/addbutton" 
     android:layout_gravity="center_horizontal" /> 
</LinearLayout> 

Может ли один помочь мне найти то, что случилось с моим кодом?

+0

Фрагмент может быть частью деятельности и не заменять действие. Ваше понимание ошибочно или ваше объяснение - misspell – Stallion

+0

попробуйте как в ответе http://stackoverflow.com/a/35334837/2826147 –

ответ

0

Надеюсь, я правильно понял вашу цель. Если вы хотите показать и текущее содержимое Activity и Fragment, тогда вы должны добавить другой макет в свой файл макета деятельности внутри корневого RelativeLayout и добавить свой фрагмент к этому макету из кода.

+0

Нет, он уже отображается друг на друга, я хочу, когда я нажимаю кнопку, действие замещается фрагментом , – user3604741

+0

Вы должны обернуть текущее содержимое в фрагмент, добавить этот фрагмент в действие вместо добавления отдельных представлений и заменить этот фрагмент на другой, нажав кнопку. –

Смежные вопросы