国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Android案例之Fragment的使用——川菜菜譜

這篇具有很好參考價(jià)值的文章主要介紹了Android案例之Fragment的使用——川菜菜譜。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Android案例之Fragment的使用——川菜菜譜

本案例將會(huì)演示如何在一個(gè)Activity中展示兩個(gè)Fragment(一個(gè)Fragment用于展示川菜列表,一個(gè)Fragment用于展示川菜做法),并實(shí)現(xiàn)Activity與Fragment通信功能

1. 準(zhǔn)備工作

導(dǎo)入兩個(gè)所需圖片至mipmap文件夾,在res/layout文件夾的activity_main.xml文件中添加兩個(gè)fragment,分別用于顯示菜單列表和菜譜的做法信息
Android案例之Fragment的使用——川菜菜譜

2. 創(chuàng)建兩個(gè)Fragment的布局文件

在res/layout文件夾中分別創(chuàng)建布局文件fragment_menu.xml和fragment_content.xml,展示川菜列表的布局文件fragment_menu.xml中放置一個(gè)ListView控件用于顯示列表,展示菜品的做法的布局文件fragment_content.xml文件中放置一個(gè)TextView用于顯示菜品做法信息

fragment_menu.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">
    <ListView
        android:id="@+id/menulist"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
</LinearLayout>

fragment_content.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">
    <TextView
        android:id="@+id/content"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginLeft="10dp"
        android:textSize="18sp"
        android:centerVertical="true"
        android:layout_alignParentLeft="true"/>
</LinearLayout>

3. 創(chuàng)建川菜列表Item界面

由于展示川菜列表的界面用到了ListView控件,因此需要為該列表創(chuàng)建一個(gè)Item界面

在res/layout文件夾中創(chuàng)建一個(gè)Item界面的布局文件item_list.xml,該文件中放置一個(gè)ImageView控件用于顯示菜品圖片,一個(gè)TextView控件用于顯示菜品名稱

item_list.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <ImageView
        android:layout_width="100dp"
        android:layout_height="40dp"
        android:id="@+id/food_icon"
        android:layout_centerInParent="true"
        android:layout_margin="10dp"/>
    <TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/food_name"
    android:layout_below="@+id/food_icon"
    android:gravity="center"/>
</RelativeLayout>

4. 創(chuàng)建ContentFragment

創(chuàng)建一個(gè)ContentFragment類繼承自Fragment,在該類中獲取界面控件并將菜品做法顯示到控件上

ContentFragment.java

package com.example.test;

import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class ContentFragment extends Fragment{
    private View view;
    private TextView mContent;

    @Override
    public void onAttach(Activity activity) {
        super.onAttach(activity);
    }
    @Override
    public View onCreateView(LayoutInflater inflater,ViewGroup container, Bundle savedInstanceState) {
        //將布局文件解析出來
        view = inflater.inflate(R.layout.fragment_content,container,false);
        if(view!=null){
            initView();
        }
        //獲取Activity中設(shè)置的文字
        setText(((MainActivity)getActivity()).getSettingText()[0];
        return view;
    }
    public void initView(){
        mContent = (TextView)view.findViewById(R.id.content);
    }
    public void setText(String text){
        mContent.setText(text);
    }
}

第29行代碼通過setText()方法將獲取的Activity中設(shè)置的菜品做法數(shù)據(jù)信息顯示到界面控件上

5. 創(chuàng)建MenuFragment

MenuFragment.java

package com.example.test;

import android.app.Fragment;
import android.os.Bundle;
import android.support.annotation.Nullable;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;

public class MenuFragment extends Fragment{
    private View view;
    private int[] settingicon;
    private String[] foodNames;
    private String[] settingText;
    private ListView mListView;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, Bundle savedInstanceState) {
        //加載布局文件
        view = inflater.inflate(R.layout.fragment_menu,container,false);
        //獲取Activity實(shí)例對(duì)象
        MainActivity activity = (MainActivity)getActivity();
        settingicon = activity.getIcons();//獲取Activity中的圖片數(shù)據(jù)
        foodNames = activity.getNames();//獲取Activity中定義的川菜名稱
        //獲取Activity中設(shè)置的菜品做法數(shù)據(jù)
        settingText = activity.getSettingText();
        if (view!=null){
            initView();
        }
        //為L(zhǎng)istView設(shè)置條目監(jiān)聽,點(diǎn)擊左側(cè)列表的Item,右側(cè)會(huì)顯示對(duì)應(yīng)的菜品做法信息
        mListView.setOnClickListener(new AdapterView.OnItemClickListener(){
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //通過Activity實(shí)例獲取另一個(gè)Fragment實(shí)例
                ContentFragment listFragment = (ContentFragment)((MainActivity)getActivity()).getFragmentManager().findFragmentById(R.id.foodcontent);
                //點(diǎn)擊Item對(duì)應(yīng)的菜品做法信息
                listFragment.setText(settingText[position]);
            }
        });
        return view;
    }
    //初始化控件的方法
    private void initView(){
        mListView = (ListView)view.findViewById(R.id.menulist);
        if(settingicon!=null){
            mListView.setAdapter(new MyAdaptter());
        }
    }
    class MyAdapter extends BaseAdapter{
        @Override
        public int getCount() {
            return settingicon.length;
        }
        @Override
        public Object getItem(int position) {
            return settingicon[position];
        }
        @Override
        public long getItemId(int position) {
            return position;
        }
        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            convertView = View.inflate(getActivity(),R.layout.item_list,null);
            ImageView mNameTV = (ImageView)convertView.findViewById(R.id.food_icon);
            mNameTV.setBackgroundResource(settingicon[position]);
            TextView mFoodName = (TextView)convertView.findViewById(R.id.food_name);
            mFoodName.setText(foodNames[position]);
            return convertView;
        }
    }
}

第38行代碼通過setOnItemClickListener()方法為列表中國(guó)的Item添加點(diǎn)擊事件的監(jiān)聽器,在該監(jiān)聽器中重寫onItemClick()方法

在onItemClick()方法中首先通過getActivity()方法獲取Activity的實(shí)例對(duì)象,接著通過對(duì)象的getFragmentManager()方法獲取FragmentManager的實(shí)例對(duì)象,最后通過findFragmentById()方法獲取到ContentFragment對(duì)象listFragment,并調(diào)用setText()方法設(shè)置點(diǎn)擊的Item對(duì)應(yīng)的菜品做法信息

重點(diǎn)語句

//通過Activity實(shí)例獲取另一個(gè)Fragment實(shí)例
ContentFragment listFragment = (ContentFragment)((MainActivity)getActivity()).getFragmentManager().findFragmentById(R.id.foodcontent);

6. 編寫MainActivity中的代碼

在MainActivity中將MenuFragment與ContentFragment添加到MainActivity界面

package com.example.test;

import android.app.Activity;
import android.app.Fragment;
import android.app.FragmentManager;
import android.app.FragmentTransaction;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;

public class MainActivity extends Activity {
    private FragmentTransaction beginTransaction;
    //菜品做法數(shù)據(jù)
    private String[] settingText = {""+"1.將雞蛋清和淀粉調(diào)料調(diào)成糊,涂抹在肉上\n"+"2...\n"+"3...\n"+"4...\n","1.豆腐切丁,香蔥、生姜、大蒜切末備用"+"2...\n"+"3...\n"+"4...\n"};
   //設(shè)置菜品圖片數(shù)據(jù)
    private int[] settingicons = {R.drawable.chicken,R.drawable.tofu};
   private String[] foodNames = {"水煮肉片","麻婆豆腐"};
    //獲取菜品圖片數(shù)據(jù)的方法
    public int[] geticons(){
        return settingicons;
    }
    public String [] getFoodNames(){
        return foodNames;
    }
    //獲取設(shè)置文字的方法
    public String[] getSettingText(){
        return settingText;
    }
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //創(chuàng)建Fragment實(shí)例對(duì)象
        ContentFragment contentFragment = new ContentFragment();
        MenuFragment menuFragment = new MenuFragment();
        beginTransaction = getFragmentManager().beginTransaction();
        //獲取事物添加Fragment
        beginTransaction.replace(R.id.foodcontent,contentFragment);
        beginTransaction.replace(R.id.menu,menuFragment);
        beginTransaction.commit();
    }
}

7. 啟動(dòng)測(cè)試

Android案例之Fragment的使用——川菜菜譜


Android案例之Fragment的使用——川菜菜譜

如果文章對(duì)您有所幫助,記得一鍵三連支持一下哦~文章來源地址http://www.zghlxwxcb.cn/news/detail-418853.html

到了這里,關(guān)于Android案例之Fragment的使用——川菜菜譜的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Android 中 Fragment判空

    1. 判斷 Fragment 是否已經(jīng)被添加到 Activity 中,可以通過 Fragment 的 isAdded() 方法來判斷。 2. 判斷 Fragment 的 View 是否已經(jīng)被創(chuàng)建,可以通過 Fragment 的 getView() 方法來判斷。 3. 判斷 Fragment 是否已經(jīng)被銷毀,可以通過 Fragment 的 isDetached() 或 isRemoving() 方法來判斷。 示例: if (fragmen

    2024年02月11日
    瀏覽(45)
  • Xamarin.Android中的Fragment

    一般而言,會(huì)在 activity 中添加一個(gè)加載 fragment 的方法。通過點(diǎn)擊菜單的按鈕,加載不同的 fragment 。其樣子一般是這樣的: 在 fragment 中往往通過工廠模式,提供及返回實(shí)例 非常簡(jiǎn)單,因?yàn)閒ragment一定是要寄存到某個(gè)activity中。因此直接使用如下代碼: 通過 FragmentManager 查找

    2024年02月10日
    瀏覽(27)
  • Android 基于Fragment的權(quán)限封裝

    業(yè)內(nèi)普遍比較認(rèn)可使用另外一種小技巧來進(jìn)行實(shí)現(xiàn)。是什么小技巧呢?回想一下,之前所有申請(qǐng)運(yùn)行時(shí)權(quán)限的操作都是在 Activity 中進(jìn)行的,事實(shí)上,Android 在 Fragment 中也提供了一份相同的 API,使得我們?cè)?Fragment 中也能申請(qǐng)運(yùn)行時(shí)權(quán)限。 但不同的是,F(xiàn)ragment 并不像 Activity 那

    2024年01月23日
    瀏覽(22)
  • android - fragment 數(shù)據(jù)丟失?狀態(tài)丟失?

    最佳答案 一些狀態(tài)丟失的例子: 1. ?假設(shè)您有一個(gè)按鈕和一個(gè) TextView 。在代碼中,你已經(jīng)定義了初始值為 0 的整數(shù) i,它通過單擊按鈕遞增 1,并且它的值顯示在 TextView 中。假設(shè)你已經(jīng)按下按鈕 5 次,那么 textview 將被設(shè)置為 0。也就是說? Integer 在屏幕變化時(shí)丟失了它的值 。

    2024年02月10日
    瀏覽(24)
  • Android Navigation 導(dǎo)航切換fragment用法

    對(duì)于Android Navigation組件的導(dǎo)航到Fragment,您可以按照以下步驟操作: 首先,在您的項(xiàng)目的build.gradle文件中添加Navigation依賴: 在你的res目錄下的navigation文件夾中創(chuàng)建一個(gè)nav_graph.xml文件,并定義您的導(dǎo)航圖。 在您的布局文件中,添加NavHostFragment作為導(dǎo)航的目標(biāo)。 在您的Activi

    2024年02月12日
    瀏覽(29)
  • Android Studio中fragment的應(yīng)用

    Android Studio中fragment的應(yīng)用

    目錄 一、fragment的概念 1.1Fragment的歷史由來 1.2什么是Fragment 1.3Fragment的生命周期? 1.4Fragment的優(yōu)點(diǎn) 二、Fragment的使用方法 三、Fragment的動(dòng)態(tài)加載實(shí)現(xiàn) ?四、總結(jié) Fragment出現(xiàn)的初衷是為了適應(yīng)大屏幕的平板電腦, 當(dāng)然現(xiàn)在他仍然是平板APP UI設(shè)計(jì)的寵兒,而且我們普通手機(jī)開發(fā)也

    2024年02月03日
    瀏覽(23)
  • Android Activity和Fragment的對(duì)比

    Android Activity和Fragment的對(duì)比

    參考來源 參考來源 參考來源 onAttach() 作用:fragment已經(jīng)關(guān)聯(lián)到activity,這個(gè)時(shí)候 activity已經(jīng)傳進(jìn)來了, 獲得activity的傳遞的值 就可以進(jìn)行 與activity的通信里, 當(dāng)然也可以使用getActivity(),前提是這個(gè)fragment已經(jīng)和宿主的activity關(guān)聯(lián),并且沒有脫離,有且只有調(diào)用一次。 onCreate(

    2024年02月11日
    瀏覽(22)
  • Android studio心得——fragment動(dòng)態(tài)加載

    Android studio心得——fragment動(dòng)態(tài)加載

    在Android應(yīng)用程序中,F(xiàn)ragment是一種可以嵌入Activity中的組件。通過 Fragment,我們可以將UI 目錄 前言 一、什么是Android Studio 二、簡(jiǎn)介Fragment 三、學(xué)期知識(shí)匯總 四、什么是碎片(Fragment) 五、頁面實(shí)現(xiàn)步驟 1.程序APP主界面的常用例子 2.定義4個(gè)Fragment 3.activity_main.xml代碼展示 4.四個(gè)

    2024年02月09日
    瀏覽(30)
  • Android ViewPager2 + Fragment 聯(lián)動(dòng)

    Android ViewPager2 + Fragment 聯(lián)動(dòng)

    本篇主要介紹一下 ViewPager2 + Fragment , 上篇中簡(jiǎn)單使用了ViewPager2 實(shí)現(xiàn)了一個(gè)圖片的滑動(dòng)效果, 那圖片視圖可以滑動(dòng), ViewPager2也可以滑動(dòng) Fragment 概述 ViewPager2 官方對(duì)它的描述就是 以可滑動(dòng)的格式顯示視圖或 Fragment 也就說明提供了滑動(dòng)Fragment的實(shí)現(xiàn) 并且還很簡(jiǎn)單, 下面來看看吧

    2023年04月08日
    瀏覽(26)
  • 展開說說:Android Fragment完全解析-卷一

    展開說說:Android Fragment完全解析-卷一

    Fragment ? 中文意思是碎片,Android 3.0推出的一個(gè)系統(tǒng)組件,主打一個(gè)在 應(yīng)用界面中 可模塊化又 可重復(fù)使用。 F ragment 它很獨(dú)立,它可以 定義和管理自己的布局,具有自己的生命周期,并且可以處理自己的輸入事件。 F ragment 很粘人,它 不能獨(dú)立存在。它們必須由 activity 或其

    2024年04月25日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包