当前位置: 首页 > news >正文

Android 下第一个fragment app 先Java 后Kotlin

看着视频学习的,Fragment:3.Fragment使用方法_哔哩哔哩_bilibili

程序的运行效果是,手机页面有2个fragment,每个fragment 有一个text view,一个按钮,按一下显示,'fine,and you?',各自独立。

在android studio 下新建一个工程,类型是 Empty View Activity,本身就有一个Activity。就有文件MainActivity.java 或者kt,还有一个layout 文件,activity_main.xml。新建一个fragment,操作如下图:

可以看到左边有4个文件:程序文件 BlankFragment.kt,MainActivity.kt (Java版本是Java),布局文件activity.xml,fragment_blank.xml,分别对4个文件修改,先简化,再添加点点代码。然后就测试成功了。

最后文件如下:

activity.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:app="http://schemas.android.com/apk/res-auto"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity"><TextViewandroid:layout_width="wrap_content"android:layout_height="0dp"android:layout_weight="1"android:text="Hello World!" /><fragment android:name="com.liwensoft.hellofragment.BlankFragment"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="4"android:id="@+id/fragment1"/><fragment android:name="com.liwensoft.hellofragment.BlankFragment"android:layout_width="match_parent"android:layout_height="0dp"android:layout_weight="4"android:id="@+id/fragment2"/></LinearLayout>

fragment_blank.xml 

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><TextViewandroid:layout_width="match_parent"android:layout_height="40dp"android:text="@string/hello_blank_fragment"android:id="@+id/tv1"/><Buttonandroid:layout_width="match_parent"android:layout_height="40dp"android:id="@+id/button"android:text="how are you"/></LinearLayout>

应用代码文件MainActivity.kt

package com.liwensoft.hellofragmentimport androidx.appcompat.app.AppCompatActivity
import android.os.Bundleclass MainActivity : AppCompatActivity() {override fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)setContentView(R.layout.activity_main)}
}

BlankFragment.kt

package com.liwensoft.hellofragmentimport android.os.Bundle
import androidx.fragment.app.Fragment
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.TextViewclass BlankFragment : Fragment() {private lateinit var tv: TextViewprivate lateinit var root:Viewoverride fun onCreate(savedInstanceState: Bundle?) {super.onCreate(savedInstanceState)}override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?,savedInstanceState: Bundle?): View? {// Inflate the layout for this fragmentroot= inflater.inflate(R.layout.fragment_blank, container, false)tv=root.findViewById<TextView>(R.id.tv1)val button=root.findViewById<Button>(R.id.button)button.setOnClickListener( ){tv.setText("fine, and you?")}return root}}

因为视频是java 语言,首先完成的是java ,其布局文件一样,代码是java的,分别如下:

MainActivity.java

package com.liwensoft.hellofragmentjava;import androidx.appcompat.app.AppCompatActivity;import android.os.Bundle;public class MainActivity extends AppCompatActivity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);}
}

FragmentBlank.java

package com.liwensoft.hellofragmentjava;import android.os.Bundle;import androidx.fragment.app.Fragment;import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;public class BlankFragment extends Fragment {private View root;private TextView textview;private Button button;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);}@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// Inflate the layout for this fragmentif(root==null) {root = inflater.inflate(R.layout.fragment_blank, container, false);}textview=root.findViewById(R.id.tv1);button=root.findViewById(R.id.button);button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {textview.setText("fine,and you?");}});return root;}
}

代码简单易懂,但我开始转了很多地方,列出方便初学者上手。

http://www.lryc.cn/news/159612.html

相关文章:

  • 行业追踪,2023-09-04
  • Android MQTT:实现设备信息上报与远程控制
  • Python爬虫——新手使用代理ip详细教程
  • idea VCS配置多个远程仓库
  • LKPNR: LLM and KG for Personalized News Recommendation Framework
  • Xshell只能打开一个会话、左边栏消失不见、高级设置在哪儿、快捷键设置解决
  • Android Retrofit 高级使用与原理
  • Unity3D开发流程及注意事项
  • 表单引擎的自定义控件的概念与设计
  • leetcode刷题--栈与递归
  • 自然语言处理——数据清洗
  • MySql学习笔记07——存储引擎介绍
  • Java基础学习笔记-1
  • 以太坊虚拟机
  • 说说BTree和B+Tree
  • 8.1.3 Bit representation and coding - 解读
  • spring 理解
  • 实战SpringMVC之CRUD
  • TCP机制之连接管理(三次握手和四次挥手详解)
  • NLP(3)--GAN
  • 无涯教程-JavaScript - IMLOG2函数
  • SpringBoot复习:(61)拦截器(HandlerInterceptor)的用法
  • 【PyQT5教程】-01入门PyQT5
  • 判断字符串s是否为字符串t的子序列
  • 数据结构之队列的实现(附源码)
  • [A题]2023 年全国大学生数学建模比赛思路、代码更新中.....
  • Tailwind 练手项目
  • SpringMVC_SSM整合
  • 【操作系统】电脑上没有IIS怎么办
  • 【vue】vue项目中批量下载文件并打压缩包