开启事务

MainActivity。class:

package com.bwei.day_11FragmentTransaction;

import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentTransaction;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends FragmentActivity implements OnClickListener {

    private FragmentManager fm;
    private FragmentTransaction transaction;

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

        Button weixin = (Button) findViewById(R.id.weixin);

        weixin.setOnClickListener(this);
        Button address_book = (Button) findViewById(R.id.address_book);
        address_book.setOnClickListener(this);

        fm = getSupportFragmentManager();

        transaction = fm.beginTransaction();
        transaction.add(R.id.frameLayout, new Weixin(), "weixin").addToBackStack(null).commit();

    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.weixin:
            transaction = fm.beginTransaction();
            transaction.add(R.id.frameLayout, new Weixin(), "weixin").addToBackStack(null).commit();
            break;
        case R.id.address_book:
            transaction = fm.beginTransaction();
            transaction.add(R.id.frameLayout, new AddressBook(), "addressBook").addToBackStack(null)
                    .commit();

            break;

        }
    }

}

AddressBook.class:

/**
 *
 */
package com.bwei.day_11FragmentTransaction;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * @author WJL
 *
 */
public class AddressBook extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        return inflater.inflate(R.layout.address_book, null);
    }

}

Weixin.class:

/**
 *
 */
package com.bwei.day_11FragmentTransaction;

import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

/**
 * @author WJL
 *
 */
public class Weixin extends Fragment {
    /*
     * (non-Javadoc)
     *
     * @see
     * android.support.v4.app.Fragment#onCreateView(android.view.LayoutInflater,
     * android.view.ViewGroup, android.os.Bundle)
     */
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        return inflater.inflate(R.layout.weixin, null);
    }

}

页面:

<LinearLayout 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:orientation="vertical" >

    <FrameLayout
        android:id="@+id/frameLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1" >
    </FrameLayout>

    <LinearLayout
        android:id="@+id/linearLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="7" >

        <Button
            android:id="@+id/weixin"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="微信" />

        <Button
            android:id="@+id/address_book"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="通讯录" />
    </LinearLayout>

</LinearLayout>

其中的fraglayout,可以替换任何布局,因为这就是事务所在的地方,就是来替换它的,其余两个页面,全靠自己定义,随着心情来的

时间: 2024-11-07 11:42:00

开启事务的相关文章

如何为SQLSERVER查询分析器开启事务

很多人在使用SQLSERVER查询分析器的时候会遇到个问题,就是操作正式库的时候,担心增删改万一弄错了该咋办?数据是无价的! 难道我们每次都要去写事务语句去做这个事情吗? SMSS其实已经给我提供了这样一个功能,对查询分析器开启事务,也就是说,你在查询分析器中执行的语句不会立刻提交到数据库,而是在事务中执行,如果你确认操作无误可以COMMIT,发现有误需要更正就立刻ROLLBACK回来,数据完好无损,皆大欢喜.具体怎么用整理如下,给大家做个参考. Step1:打开SSMS,选择工具,选项,如图所

MySql开启事务

1 CREATE PROCEDURE test_sp1( ) 2 BEGIN 3 DECLARE t_error INTEGER DEFAULT 0; 4 DECLARE CONTINUE HANDLER FOR SQLEXCEPTION SET t_error=1; 5 6 START TRANSACTION; 7 INSERT INTO test VALUES(NULL, 'test sql 001'); 8 INSERT INTO test VALUES('1', 'test sql 00

jdbc 开启事务

package com.itheima.tx; import java.sql.Connection; import java.sql.PreparedStatement; import java.sql.SQLException; import java.sql.Types; import org.junit.Test; import com.itheima.utils.JdbcUtil; /** * 转账 事务控制 * update account set money=money-100 w

开启事务时mybatis返回主键id

先说一下没有注解的 先给出实体类: public class City { private int city_id; private String city_name; public int getCity_id() { return city_id; } public void setCity_id(int city_id) { this.city_id = city_id; } public String getCity_name() { return city_name; } public

经验总结55--spring开启事务回滚

使用spring的@Transactional注解,异常时,进行事务回滚. 1.引用 xmlns:tx="http://www.springframework.org/schema/tx" http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd 2.开启事务 <tx:annotation-driven transaction-manager=&q

记录一次bug解决过程:resultType和手动开启事务

一.总结 二.BUG描述:MyBatis中resultType使用 MyBatis中的resultType类似于入参:parameterType.先看IDCM项目中的实际使用案例代码,如下: // List<Integer> orderIds = assetBeanMapperExt.getOrderIdsByParentIds(SqlStringUtil.formatInStr(logisticsOrder.getParentIds())); 我们的目的是通过*Ext层直接返回一个list,

ThreadLocal 开启事务

1.ThreadLocal该类提供了线程局部变量 2.分析原理: ThreadLocal内部有一个Map.Map的key是当前线程对象,value是一个Object对象. 模拟该类: public class ThreadLocal<T>{ private Map<Runnable,T> map = new HashMap<Runnable,T>(); public void set(T t){ map.put(Thread.currentThread(),t); //

第10章—开启事务

spring boot 系列学习记录:http://www.cnblogs.com/jinxiaohang/p/8111057.html 码云源码地址:https://gitee.com/jinxiaohang/springboot 此前,我们主要通过XML配置Spring来托管事务.在SpringBoot则非常简单,只需在业务层添加事务注解(@Transactional )即可快速开启事务.虽然事务很简单,但对于数据方面是需要谨慎对待的,识别常见坑点对我们开发有帮助. 推荐做法:在业务层统一抛

开启事务/结束事务

/** * 开启事务 * * @param function $callback 可选, 事务之内的业务逻辑, 抛出异常回滚或成功时返回消息 * @return bool/exception/string 未设置参数时返回true, 出错时返回\Think\Exception异常对象, 成功时返回提示消息 */ public static function start($callback = null) { D()->startTrans(); if ($callback && is

开启事务的两种方法

开启事务的另一种方式 from django.db import transaction # 开启事务的另一种方式 with transaction.atomic() # 第二种开启事务 原文地址:https://www.cnblogs.com/yafeng666/p/12515272.html