كيفية استدعاء نافدة منبتقة في الاندرويد popup fragement android studio
03 March
اولا fragement هو نافدة كغيرها من النوافد لكن بمميزات اخرى وهي لا تظهر في ملف minifests كحال activity يمكن استعمالها كنافدة منفردة او استدعاءها داخل نافذة اخرى.
وهذا مثال بسيط
نقوم بانشاء fragement كما في الصورة :
كيفية استدعاء نافدة منبتقة في الاندرويد android studio fragementكيفية استدعاء نافدة منبتقة android studio
نضع الكود التالي :
<framelayout android:layout_height="match_parent" android:layout_width="match_parent" tools:context="layout.popUp" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <!-- TODO: Update blank fragment layout --> <linearlayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"> <button android:id="@+id/button3" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="number1"> </button><button android:id="@+id/button4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="number2"/> <textview android:id="@+id/textView4" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Large Text" android:textappearance="?android:attr/textAppearanceLarge"/></linearlayout> </framelayout>
ننتقل الى ملف جافا :
package com.learnmore.androidbella; import android.app.Dialog; import android.content.Context; import android.net.Uri; import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.DialogFragment; import android.support.v4.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import com.learnmore.androidbella.R; //مهم جدا خاصية dialogfragment public class popUp extends DialogFragment { //اثناء استدعاء النافدة @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { final View view = inflater.inflate(R.layout.pop_up, container,false); //استدعاء الازرار Button tv0=(Button) view.findViewById(R.id.button3); Button tv1=(Button) view.findViewById(R.id.button4); //عند الضغط على الزر الاول tv0.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //استدعاء النص TextView tv=(TextView)view.findViewById(R.id.textView4); tv.setText("number1"); } }); //عند الضغط على الزر التاني tv1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //استدعاء النص TextView tv=(TextView)view.findViewById(R.id.textView4); tv.setText("number2"); } }); return view; } //بعد انشاء النافدة @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } }
بعدها قم بالذهاب الى النافدة التي ترغب في اظهار fragement داخلها
ملف xml
<relativelayout android:layout_height="match_parent" android:layout_width="match_parent" android:paddingbottom="@dimen/activity_vertical_margin" android:paddingleft="@dimen/activity_horizontal_margin" android:paddingright="@dimen/activity_horizontal_margin" android:paddingtop="@dimen/activity_vertical_margin" tools:context="com.learnmore.androidbella.MainActivity" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools"> <linearlayout android:layout_height="match_parent" android:layout_width="match_parent" android:orientation="vertical"> <textview android:id="@+id/textView2" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Medium Text" android:textappearance="?android:attr/textAppearanceMedium"/> <button android:id="@+id/button5" android:layout_height="wrap_content" android:layout_width="wrap_content" android:onclick="forge" android:text="forge"/> </linearlayout> </relativelayout>
ننتقل الى ملف جافا :
package com.learnmore.androidbella; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.TextView; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } public void forge(View view) { FragmentTransaction manager=getSupportFragmentManager().beginTransaction(); popUp pop=new popUp(); pop.show(manager,null); } }
اترك لنا تعليقا