主頁 > 軟體工程 > ImageButton在1次使用Android后停止作業

ImageButton在1次使用Android后停止作業

2022-06-01 20:20:09 軟體工程

所以請聽我說完,我使用一個按鈕打開一個活動,該活動生成一個專案,然后該專案將回傳到原始片段并顯示在 recyclerview 中......但是一旦我嘗試添加第二個專案,ImageButton 就贏了'不要讓我再次訪問專案生成活動,幾乎就像 ImageButton 已停用(我嘗試使用 setEnabled 和 setClickable 但它不會修復它),只要我使用 Button 而不是 ImageButton,它就可以正常作業,但是我無法按照自己的意愿自定義它的外觀。以下是一些影像和代碼:

profile_fragment.java

public class profile_fragment extends Fragment implements ExerciseRecyclerAdapterFinal.OnItemListener, Serializable {

    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";

    public ArrayList<ExerciseItemFinal> listExercises = new ArrayList<>();

    public RecyclerView rv;

    private String mParam1;
    private String mParam2;

    public ExerciseItemFinal item;

    public int contadorDias;

    public TextView dateView;

    public ImageView rightButton;
    public ImageView leftButton;

    public ImageButton addButtonCircle;

    public String date;

    public Calendar calendar;

    ActivityResultLauncher<Intent> activityLauncher = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result) {

                    if (result.getResultCode() == 111) {
                        Intent intent = result.getData();

                        if (intent != null) {
                            item = (ExerciseItemFinal) intent.getSerializableExtra("lol");
                            addItem(item);
                            updateRecyclerView();
                            addButtonCircle.setEnabled(true);
                            }
                        }
                    }
                }

    );

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);

        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        contadorDias = 0;

        calendar = Calendar.getInstance();
        date = DateFormat.getDateInstance(DateFormat.SHORT).format(calendar.getTime());

        View view = inflater.inflate(R.layout.fragment_profile_fragment, container, false);

        dateView = (TextView) view.findViewById(R.id.date_text_2);
        rightButton = (ImageView) view.findViewById(R.id.right_button_2);
        leftButton = (ImageView) view.findViewById(R.id.left_button_2);
        addButtonCircle = (ImageButton) view.findViewById(R.id.add_button_circle);

        rv = view.findViewById(R.id.recyclerViewExercises123);

        dateView.setText("Today");

        addButtonCircle.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(getActivity(), ExerciseCategoryChooser.class);
                activityLauncher.launch(i);
            }
        });

        rightButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                calendar.add(Calendar.DATE, 1);
                contadorDias  ;
                date = DateFormat.getDateInstance(DateFormat.SHORT).format(calendar.getTime());
                dateView.setText(setDay(contadorDias, date));
            }
        });

        leftButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                calendar.add(Calendar.DATE, -1);
                contadorDias--;
                date = DateFormat.getDateInstance(DateFormat.SHORT).format(calendar.getTime());
                dateView.setText(setDay(contadorDias, date));
            }
        });

        return view;
    }

    private void updateRecyclerView() {

        ExerciseRecyclerAdapterFinal adapter = new ExerciseRecyclerAdapterFinal(getContext(), listExercises, this);
        rv.setAdapter(adapter);
        rv.setLayoutManager(new LinearLayoutManager(getContext()));

    }

    private void addItem(ExerciseItemFinal item) {

        listExercises.add(item);

    }

    private String setDay(int cont, String dateNew) {

        if (cont == 0) {
            return "Today";
        } else if (cont == 1){
            return "Tomorrow";
        } else if (cont == -1){
            return "Yesterday";
        } else {
            return dateNew;
        }

    }


    @Override
    public void onItemListener(int position) {

    }
}

練習類別選擇器.java

public class ExerciseCategoryChooser extends AppCompatActivity implements Serializable, ExerciseRecyclerAdapter.onItemClick, ExerciseRecyclerAdapter1.OnItemListener{

    public ImageView backArrow;
    public ImageView addButton;

    public int selection;

    public RecyclerView rv;

    public ExerciseItemFinal item;

    public ExerciseItem item1;
    public CategoryItem item2;

    public ArrayList<CategoryItem> categories = new ArrayList<>(); String [] categoriesArray;
    public ArrayList<ExerciseItem> absItems = new ArrayList<>(); String [] absArray;
    public ArrayList<ExerciseItem> backItems = new ArrayList<>(); String [] backArray;
    public ArrayList<ExerciseItem> bicepsItems = new ArrayList<>(); String [] bicepsArray;
    public ArrayList<ExerciseItem> cardioItems = new ArrayList<>(); String [] cardioArray;
    public ArrayList<ExerciseItem> chestItems = new ArrayList<>(); String [] chestArray;
    public ArrayList<ExerciseItem> legsItems = new ArrayList<>(); String [] legsArray;
    public ArrayList<ExerciseItem> shouldersItems = new ArrayList<>(); String [] shouldersArray;
    public ArrayList<ExerciseItem> tricepsItems = new ArrayList<>(); String [] tricepsArray;

    ActivityResultLauncher<Intent> activityLauncher2 = registerForActivityResult(
            new ActivityResultContracts.StartActivityForResult(),
            new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result) {

                    if (result.getResultCode() == 011) {
                        Intent intent = result.getData();

                        if (intent != null) {
                            item = (ExerciseItemFinal) intent.getSerializableExtra("code123");
                            finished();
                        }
                    }
                }
            }
    );

    private void finished() {

        Intent i = new Intent();
        i.putExtra("lol", item);
        setResult(111, i);
        finish();

    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_exercise_category_chooser);

        backArrow = findViewById(R.id.arrow_exercises);
        addButton = findViewById(R.id.add_button_exercises);

        rv = findViewById(R.id.recyclerViewExercise);

        categoriesArray = getResources().getStringArray(R.array.categoriesExercises);
        absArray = getResources().getStringArray(R.array.absExercises);
        backArray = getResources().getStringArray(R.array.backExercises);
        bicepsArray = getResources().getStringArray(R.array.bicepsExercises);
        cardioArray = getResources().getStringArray(R.array.cardioExercises);
        chestArray = getResources().getStringArray(R.array.chestExercises);
        legsArray = getResources().getStringArray(R.array.legsExercises);
        shouldersArray = getResources().getStringArray(R.array.shouldersExercises);
        tricepsArray = getResources().getStringArray(R.array.tricepsExercises);

        selection = 0;

        Toast.makeText(this, "Test", Toast.LENGTH_SHORT).show();

        insertAllItems(selection);

        ActivityResultLauncher<Intent> activityLauncher = registerForActivityResult(
                new ActivityResultContracts.StartActivityForResult(),
                new ActivityResultCallback<ActivityResult>() {
                    @Override
                    public void onActivityResult(ActivityResult result) {

                        if (result.getResultCode() == 7171) {
                            Intent intent = result.getData();

                            if (intent != null) {

                            }
                        }
                    }
                }
        );


        addButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent(ExerciseCategoryChooser.this, AddExercise.class);
                activityLauncher.launch(intent);
            }
        });

        backArrow.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                setResult(892, null);
                finish();
            }
        });

    }

    public void insertAllItems(int s) {
        switch(s) {
            case 1:
                for (int l = 0; l < absArray.length; l  ) {
                    ExerciseItem i1 = new ExerciseItem(absArray[l], "Back", "Weight and Reps");
                    absItems.add(i1);
                }

                ExerciseRecyclerAdapter1 adapter1 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , absItems, this::onItemClick);
                rv.setAdapter(adapter1);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;
            case 2:
                for (int l = 0; l < backArray.length; l  ) {
                    ExerciseItem i2 = new ExerciseItem(backArray[l], "Back", "Weight and Reps");
                    backItems.add(i2);
                }

                ExerciseRecyclerAdapter1 adapter2 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , backItems, this::onItemClick);
                rv.setAdapter(adapter2);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;
            case 3:
                for (int l = 0; l < bicepsArray.length; l  ) {
                    ExerciseItem i3 = new ExerciseItem(bicepsArray[l], "Biceps", "Weight and Reps");
                    bicepsItems.add(i3);
                }

                ExerciseRecyclerAdapter1 adapter3 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , bicepsItems, this::onItemClick);
                rv.setAdapter(adapter3);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;
            case 4:
                for (int l = 0; l < cardioArray.length; l  ) {
                    ExerciseItem i4 = new ExerciseItem(cardioArray[l], "Cardio", "Weight and Reps");
                    cardioItems.add(i4);
                }

                ExerciseRecyclerAdapter1 adapter4 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , cardioItems, this::onItemClick);
                rv.setAdapter(adapter4);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;
            case 5:
                for (int l = 0; l < chestArray.length; l  ) {
                    ExerciseItem i5 = new ExerciseItem(chestArray[l], "Chest", "Weight and Reps");
                    chestItems.add(i5);
                }

                ExerciseRecyclerAdapter1 adapter5 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , chestItems, this::onItemClick);
                rv.setAdapter(adapter5);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;
            case 6:
                for (int l = 0; l < legsArray.length; l  ) {
                    ExerciseItem i6 = new ExerciseItem(legsArray[l], "Legs", "Weight and Reps");
                    legsItems.add(i6);
                }

                ExerciseRecyclerAdapter1 adapter6 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , legsItems, this::onItemClick);
                rv.setAdapter(adapter6);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;
            case 7:
                for (int l = 0; l < shouldersArray.length; l  ) {
                    ExerciseItem i7 = new ExerciseItem(shouldersArray[l], "Shoulders", "Weight and Reps");
                    shouldersItems.add(i7);
                }

                ExerciseRecyclerAdapter1 adapter7 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , shouldersItems, this::onItemClick);
                rv.setAdapter(adapter7);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;
            case 8:
                for (int l = 0; l < tricepsArray.length; l  ) {
                    ExerciseItem i8 = new ExerciseItem(tricepsArray[l], "Triceps", "Weight and Reps");
                    tricepsItems.add(i8);
                }

                ExerciseRecyclerAdapter1 adapter8 = new ExerciseRecyclerAdapter1(getApplicationContext(), item1 , tricepsItems, this::onItemClick);
                rv.setAdapter(adapter8);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));

                break;

            default:
                for (int l = 0; l < categoriesArray.length; l  ) {
                    CategoryItem categoryItem = new CategoryItem(categoriesArray[l]);
                    categories.add(categoryItem);
                }

                ExerciseRecyclerAdapter adapter = new ExerciseRecyclerAdapter(getApplicationContext(), item2 , categories, this::onItemListener);
                rv.setAdapter(adapter);
                rv.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
        }
    }

    @Override
    public void onItemListener(int position) {
        switch (position) {
            case 0:
                selection = 1;
                insertAllItems(selection);
                break;
            case 1:
                selection = 2;
                insertAllItems(selection);
                break;
            case 2:
                selection = 3;
                insertAllItems(selection);
                break;
            case 3:
                selection = 4;
                insertAllItems(selection);
                break;
            case 4:
                selection = 5;
                insertAllItems(selection);
                break;
            case 5:
                selection = 6;
                insertAllItems(selection);
                break;
            case 6:
                selection = 7;
                insertAllItems(selection);
                break;
            case 7:
                selection = 8;
                insertAllItems(selection);
                break;

            default:

        }
    }

    @Override
    public void onItemClick(int position) {

        Intent intent = new Intent(ExerciseCategoryChooser.this, ConfirmAdditionExercise.class);
        activityLauncher2.launch(intent);

    }

}

fragment_profile_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".profile_fragment"
    android:background="@drawable/background_gradient"
    android:id="@ id/profile_frag">

    <include
        android:id="@ id/dateChangerProfile"
        layout="@layout/date_changer_2"
        android:layout_width="match_parent"
        android:layout_height="50dp" />

    <ImageButton
        android:id="@ id/add_button_circle"
        android:layout_width="57.5dp"
        android:layout_height="57.5dp"
        android:background="@drawable/circular_button_background"
        android:src="@drawable/ic_baseline_add_24"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_margin="20dp"
        />

    <androidx.recyclerview.widget.RecyclerView
        android:id="@ id/recyclerViewExercises123"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="50dp">

    </androidx.recyclerview.widget.RecyclerView>



</RelativeLayout>

ImageButton 在 1 次使用 Android 后停止作業

uj5u.com熱心網友回復:

基本上我在 recyclerView 和 ImageButton 之間切換了位置,問題是當我向 recyclerView 添加一個專案時,它有點將回收器視圖放在按鈕的“前面”,這使我無法單擊 ImageButton。

正確代碼:

fragment_profile_fragment.xml

<?xml version="1.0" encoding="utf-8"?>
<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"
    tools:context=".profile_fragment"
    android:background="@drawable/background_gradient"
    android:id="@ id/profile_frag">

    <include
        android:id="@ id/dateChangerProfile"
        layout="@layout/date_changer_2"
        android:layout_width="match_parent"
        android:layout_height="50dp" />

    <androidx.recyclerview.widget.RecyclerView
        android:id="@ id/recyclerViewExercises123"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="50dp">

    </androidx.recyclerview.widget.RecyclerView>

    <ImageButton
        android:id="@ id/add_button_circle"
        android:layout_width="57.5dp"
        android:layout_height="57.5dp"
        android:background="@drawable/circular_button_background"
        android:src="@drawable/ic_baseline_add_24"
        android:layout_alignParentBottom="true"
        android:layout_alignParentRight="true"
        android:layout_margin="20dp"
        />
    
</RelativeLayout>

轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/484406.html

標籤:爪哇 安卓 xml 安卓工作室 安卓图像按钮

上一篇:使用名稱和型別作為屬性反序列化XML

下一篇:java.lang.ClassNotFoundException:com.sun.xml.bind.v2.ContextFactory

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • Git本地庫既關聯GitHub又關聯Gitee

    創建代碼倉庫 使用gitee舉例(github和gitee差不多) 1.在gitee右上角點擊+,選擇新建倉庫 ? 2.選擇填寫倉庫資訊,然后進行創建 ? 3.服務端已經準備好了,本地開始作準備 (1)Git 全域設定 git config --global user.name "成鈺" git c ......

    uj5u.com 2020-09-10 05:04:14 more
  • CODING DevOps 代碼質量實戰系列第二課,相約周三

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。**《DevOps 代碼質量實戰(PHP 版)》**為 CODING DevOps 代碼質量實戰系列的第二課,同時也是本系列的 PHP ......

    uj5u.com 2020-09-10 05:07:43 more
  • 推薦Scrum書籍

    推薦Scrum書籍 直接上干貨,推薦書籍清單如下(推薦有順序的哦) Scrum指南 Scrum精髓 Scrum敏捷軟體開發 Scrum捷徑 硝煙中的Scrum和XP : 我們如何實施Scrum 敏捷軟體開發:Scrum實戰指南 Scrum要素 大規模Scrum:大規模敏捷組織的設計 用戶故事地圖 用 ......

    uj5u.com 2020-09-10 05:07:45 more
  • CODING DevOps 代碼質量實戰系列最后一課,周四發車

    隨著 ToB(企業服務)的興起和 ToC(消費互聯網)產品進入成熟期,線上故障帶來的損失越來越大,代碼質量越來越重要,而「質量內建」正是 DevOps 核心理念之一。 **《DevOps 代碼質量實戰(Java 版)》**為 CODING DevOps 代碼質量實戰系列的最后一課,同時也是本系列的 ......

    uj5u.com 2020-09-10 05:07:52 more
  • 敏捷軟體工程實踐書籍

    Scrum轉型想要做好,第一步先了解并真正落實Scrum,那么我推薦的Scrum書籍是要看懂并實踐的。第二步是團隊的工程實踐要做扎實。 下面推薦工程實踐書單: 重構:改善既有代碼的設計 決議極限編程 : 擁抱變化 代碼整潔代碼 程式員的職業素養 修改代碼的藝術 撰寫可讀代碼的藝術 測驗驅動開發 : ......

    uj5u.com 2020-09-10 05:07:55 more
  • Jenkins+svn+nginx實作windows環境自動部署vue前端專案

    前面文章介紹了Jenkins+svn+tomcat實作自動化部署,現在終于有空抽時間出來寫下Jenkins+svn+nginx實作自動部署vue前端專案。 jenkins的安裝和配置已經在前面文章進行介紹,下面介紹實作vue前端專案需要進行的哪些額外的步驟。 注意:在安裝jenkins和nginx的 ......

    uj5u.com 2020-09-10 05:08:49 more
  • CODING DevOps 微服務專案實戰系列第一課,明天等你

    CODING DevOps 微服務專案實戰系列第一課**《DevOps 微服務專案實戰:DevOps 初體驗》**將由 CODING DevOps 開發工程師 王寬老師 向大家介紹 DevOps 的基本理念,并探討為什么現代開發活動需要 DevOps,同時將以 eShopOnContainers 項 ......

    uj5u.com 2020-09-10 05:09:14 more
  • CODING DevOps 微服務專案實戰系列第二課來啦!

    近年來,工程專案的結構越來越復雜,需要接入合適的持續集成流水線形式,才能滿足更多變的需求,那么如何優雅地使用 CI 能力提升生產效率呢?CODING DevOps 微服務專案實戰系列第二課 《DevOps 微服務專案實戰:CI 進階用法》 將由 CODING DevOps 全堆疊工程師 何晨哲老師 向 ......

    uj5u.com 2020-09-10 05:09:33 more
  • CODING DevOps 微服務專案實戰系列最后一課,周四開講!

    隨著軟體工程越來越復雜化,如何在 Kubernetes 集群進行灰度發布成為了生產部署的”必修課“,而如何實作安全可控、自動化的灰度發布也成為了持續部署重點關注的問題。CODING DevOps 微服務專案實戰系列最后一課:**《DevOps 微服務專案實戰:基于 Nginx-ingress 的自動 ......

    uj5u.com 2020-09-10 05:10:00 more
  • CODING 儀表盤功能正式推出,實作作業資料可視化!

    CODING 儀表盤功能現已正式推出!該功能旨在用一張張統計卡片的形式,統計并展示使用 CODING 中所產生的資料。這意味著無需額外的設定,就可以收集歸納寶貴的作業資料并予之量化分析。這些海量的資料皆會以圖表或串列的方式躍然紙上,方便團隊成員隨時查看各專案的進度、狀態和指標,云端協作迎來真正意義上 ......

    uj5u.com 2020-09-10 05:11:01 more
最新发布
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:41:12 more
  • windows系統git使用ssh方式和gitee/github進行同步

    使用git來clone專案有兩種方式:HTTPS和SSH:
    HTTPS:不管是誰,拿到url隨便clone,但是在push的時候需要驗證用戶名和密碼;
    SSH:clone的專案你必須是擁有者或者管理員,而且需要在clone前添加SSH Key。SSH 在push的時候,是不需要輸入用戶名的,如果配置... ......

    uj5u.com 2023-04-19 08:35:34 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:05:44 more
  • 2023年農牧行業6大CRM系統、5大場景盤點

    在物聯網、大資料、云計算、人工智能、自動化技術等現代資訊技術蓬勃發展與逐步成熟的背景下,數字化正成為農牧行業供給側結構性變革與高質量發展的核心驅動因素。因此,改造和提升傳統農牧業、開拓創新現代智慧農牧業,加快推進農牧業的現代化、資訊化、數字化建設已成為農牧業發展的重要方向。 當下,企業數字化轉型已經 ......

    uj5u.com 2023-04-18 08:00:18 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:20:31 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:55 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:18:51 more
  • 談一談我對協同開發的一些認識

    如今各互聯網公司普通都使用敏捷開發,采用小步快跑的形式來進行專案開發。如果是小專案或者小需求,那一個開發可能就搞定了。但對于電商等復雜的系統,其功能多,結構復雜,一個人肯定是搞不定的,所以都是很多人來共同開發維護。以我曾經待過的商城團隊為例,光是后端開發就有七十多人。 為了更好地開發這類大型系統,往 ......

    uj5u.com 2023-04-17 08:18:00 more
  • 專案管理PRINCE2核心知識點整理

    PRINCE2,即 PRoject IN Controlled Environment(受控環境中的專案)是一種結構化的專案管理方法論,由英國政府內閣商務部(OGC)推出,是英國專案管理標準。
    PRINCE2 作為一種開放的方法論,是一套結構化的專案管理流程,描述了如何以一種邏輯性的、有組織的方法,... ......

    uj5u.com 2023-04-17 08:17:55 more
  • 計算機組成原理—存盤器

    計算機組成原理—硬體結構 二、存盤器 1.概述 存盤器是計算機系統中的記憶設備,用來存放程式和資料 1.1存盤器的層次結構 快取-主存層次主要解決CPU和主存速度不匹配的問題,速度接近快取 主存-輔存層次主要解決存盤系統的容量問題,容量接近與價位接近于主存 2.主存盤器 2.1概述 主存與CPU的聯 ......

    uj5u.com 2023-04-17 08:12:06 more