当前位置:  编程技术>移动开发
本页文章导读:
    ▪TextView中怎么根据内容格式匹配动作        TextView中如何根据内容格式匹配动作   在TextView中,有时会有需要根据内容格式来匹配动作,怎么理解呢 比如说我们看到一个网址如:www.baidu.com,我们希望能够连接过去,这时我们可以实现.........
    ▪ 让ProgressDialog在setCancelable(false)时按回到键可dismiss        让ProgressDialog在setCancelable(false)时按返回键可dismiss最近发现Android4.0系统中ProgressDialog设置为setCancelable(true)时,点击ProgressDialog以外的区域也可以让ProgressDialog dismiss掉。但有时我们不希望是这.........
    ▪ QSettings保留程序设置       QSettings保存程序设置今天看了一些QSettings的简单用法,可以用来保存程序的设置,使得程序每次启动都可以显示上次关闭时的状态。我这里实现了一个简单的文本编辑窗口,可以设置文本的.........

[1]TextView中怎么根据内容格式匹配动作
    来源: 互联网  发布时间: 2014-02-18
TextView中如何根据内容格式匹配动作

 

在TextView中,有时会有需要根据内容格式来匹配动作,怎么理解呢

比如说我们看到一个网址如:www.baidu.com,我们希望能够连接过去,这时我们可以实现去自动识别网址,然后能够连接过去

废话少说,看代码:

 

activity_main.xml代码:

 

<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"

     >

       <Button

        android:id="@+id/btn2"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:onClick="myClick"

        android:text="根据内容自动匹配动作的文本" />

 </LinearLayout>

 

MainActivity.java代码:


package com.example.exercise3;

import android.os.Bundle;

import android.app.Activity;

import android.content.Intent;

import android.view.Menu;

import android.view.View;

public class MainActivity extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main); 

    }    

    public void myClick(View view){

     Intent intent=new Intent();

     switch(view.getId()){

     case R.id.btn1:

      intent.setClass(this, HtmlFormatText.class);

      break;

     case R.id.btn2:

      intent.setClass(this, AutoMatch.class);

      break;

     case R.id.btn3:

      intent.setClass(this, MyDefineActionTextView.class);

      break;

     case R.id.btn4:

      intent.setClass(this, FormatTextView.class);

      break;

     case R.id.btn5:

      intent.setClass(this,InputImageEditViewActivity.class);

      break;

     }

     this.startActivity(intent);

    }

}



 

点击btn2,启动AutoMatch.java

 

 

AutoMatch.java代码:

package com.example.exercise3;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class AutoMatch extends Activity {

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        // TODO Auto-generated method stub

        super.onCreate(savedInstanceState);

        setContentView(R.layout.auto_match);

        TextView tv=(TextView)findViewById(R.id.match_txt);

        String msg="百度:www.baidu.com\n";

        msg+="8690423";

        tv.setText(msg);

    }

}

auto_match.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" >

    <TextView 

        android:id="@+id/match_txt"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:autoLink="all" 

        />

</LinearLayout>

 

看了这么多,其实实现功能的代码就是:android:autoLink="all",

 

以后再开发过程中这样的使用方式并不多

 

如果各位朋友有什么疑问和建议,欢迎大家给我留言。。。



    
[2] 让ProgressDialog在setCancelable(false)时按回到键可dismiss
    来源: 互联网  发布时间: 2014-02-18
让ProgressDialog在setCancelable(false)时按返回键可dismiss
最近发现Android4.0系统中ProgressDialog设置为setCancelable(true)时,点击ProgressDialog以外的区域也可以让ProgressDialog dismiss掉。但有时我们不希望是这样的效果,于是将ProgressDialog设置setCancelable(false),再点击ProgressDialog以外的区域就不会出现前面所说的情况了,然而这样以来再按返回键时就不起作用了,只能等待程序执行到dissmiss处为止。其实,只要为ProgressDialog添加KeyListener来对返回键予以处理就可以解决这个问题了。

  • package cn.winfirm.examples.base;

  • import android.app.Activity;
  • import android.app.ProgressDialog;
  • import android.content.DialogInterface;
  • import android.content.DialogInterface.OnKeyListener;
  • import android.os.Bundle;
  • import android.view.KeyEvent;
  • import android.view.Window;

  • /**
  •  * Activity的基类,带一个ProgressDialog,可双击取消其显示
  •  * 
  •  * @author savant
  •  * 
  •  */
  • public class BaseActivity extends Activity {

  •     private ProgressDialog progressDialog = null;

  •     @Override
  •     protected void onCreate(Bundle savedInstanceState) {
  •         super.onCreate(savedInstanceState);
  •         requestWindowFeature(Window.FEATURE_NO_TITLE);
  •     }

  •     /**
  •      * show loading progress dialog
  •      */
  •     public void showDialog() {
  •         if (null == progressDialog) {
  •             progressDialog = ProgressDialog.show(BaseActivity.this, "", "正在加载,请稍候...");
  •             progressDialog.setCancelable(false);
  •         } else {
  •             progressDialog.show();
  •         }
  •         progressDialog.setOnKeyListener(onKeyListener);
  •     }

  •     /**
  •      * add a keylistener for progress dialog
  •      */
  •     private OnKeyListener onKeyListener = new OnKeyListener() {
  •         @Override
  •         public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
  •             if (keyCode == KeyEvent.KEYCODE_BACK && event.getAction() == KeyEvent.ACTION_DOWN) {
  •                 dismissDialog();
  •             }
  •             return false;
  •         }
  •     };

  •     /**
  •      * dismiss dialog
  •      */
  •     public void dismissDialog() {
  •         if (isFinishing()) {
  •             return;
  •         }
  •         if (null != progressDialog && progressDialog.isShowing()) {
  •             progressDialog.dismiss();
  •         }
  •     }

  •     /**
  •      * cancel progress dialog if nesseary
  •      */
  •     @Override
  •     public void onBackPressed() {
  •         if (progressDialog != null && progressDialog.isShowing()) {
  •             dismissDialog();
  •         } else {
  •             super.onBackPressed();
  •         }
  •     }
  • }

  •     
    [3] QSettings保留程序设置
        来源: 互联网  发布时间: 2014-02-18
    QSettings保存程序设置

    今天看了一些QSettings的简单用法,可以用来保存程序的设置,使得程序每次启动都可以显示上次关闭时的状态。我这里实现了一个简单的文本编辑窗口,可以设置文本的字体,字体的颜色和背景色。每次关闭程序都保存程序的几何大小,位置和文本以及文本所设置的格式,方便启动程序后继续编辑。

    文本编辑窗口
    TextEditor继承了QTextEdit,主要实现文本编辑和文本格式设置。保存文本信息时直接用的html字符串形式保存,可以同时保存文本的格式。
    class TextEditor:public QTextEdit
    {
    	Q_OBJECT
    public:
    	TextEditor(QWidget *parent = NULL);
    	~TextEditor();
    
    	void SaveSettings();
    
    protected:
    	void ReadSettings();
    	void contextMenuEvent ( QContextMenuEvent * event );
    private slots:
    	void SettingBackColorSlot();
    	void SettingTextColorSlot();
    	void SettingTextFontSlot();
    };
    

    TextEditor::TextEditor( QWidget *parent /*= NULL*/ ):QTextEdit(parent)
    {
    	ReadSettings();
    }
    
    TextEditor::~TextEditor()
    {
    
    }
    
    void TextEditor::contextMenuEvent( QContextMenuEvent * event )
    {
    	QMenu *pMenu = createStandardContextMenu();
    	pMenu->addSeparator();
    	
    	QTextCursor cursor = this->textCursor();
    	QString seletedText = cursor.selectedText();
    	if (!seletedText.isEmpty())     //选中文本才可以设置文本样式
    	{
    		QMenu *pSubMenu = new QMenu(tr("设置"),pMenu);
    		pMenu->addMenu(pSubMenu);
    		QAction *pFontAct = new QAction(tr("字体"),pSubMenu);
    		QAction *pTextColorAct = new QAction(tr("字体颜色"),pSubMenu);
    		QAction *pBackColorAct = new QAction(tr("背景色"),pSubMenu);
    		pSubMenu->addAction(pFontAct);
    		pSubMenu->addAction(pTextColorAct);
    		pSubMenu->addAction(pBackColorAct);
    
    		connect(pFontAct,SIGNAL(triggered ()),this,SLOT(SettingTextFontSlot()));
    		connect(pTextColorAct,SIGNAL(triggered ()),this,SLOT(SettingTextColorSlot()));
    		connect(pBackColorAct,SIGNAL(triggered ()),this,SLOT(SettingBackColorSlot()));
    	}
    	pMenu->exec(event->globalPos());
    	delete pMenu;
    }
    
    
    //设置文本背景色
    void TextEditor::SettingBackColorSlot()
    {
    	QColor color = QColorDialog::getColor(Qt::white, this, "Select Color", QColorDialog::DontUseNativeDialog); 
    	if(color.isValid()) 
    	{ 
    		this->setTextBackgroundColor(color); 
    	} 
    }
    //设置文本颜色
    void TextEditor::SettingTextColorSlot()
    {
    	QColor color = QColorDialog::getColor(Qt::black, this, "Select Color", QColorDialog::DontUseNativeDialog); 
    	if(color.isValid()) 
    	{ 
    		this->setTextColor(color); 
    	}
    }
    //设置文本字体
    void TextEditor::SettingTextFontSlot()
    {
    	bool ok; 
    	QFont font = QFontDialog::getFont(&ok, this); 
    	if (ok) 
    	{ 
    		QTextCursor cur = this->textCursor(); 
    		QString sltStr = cur.selectedText(); 
    		this->cut(); 
    		QTextCharFormat fmtText; 
    		fmtText.setFont(font); 
    		cur.insertText(sltStr,fmtText); 
    	} 
    }
    //退出前保存文本信息
    void TextEditor::SaveSettings()
    {
    	QSettings TextSettings("Mysoft","TextData");
    	QString html = this->toHtml();
    	TextSettings.setValue("text",html);
    }
    //启动时读取信息
    void TextEditor::ReadSettings()
    {
    	QSettings TextSettings("Mysoft","TextData");
    	QString html = TextSettings.value("text").toString();
    	this->setHtml(html);
    }
    


    程序主窗口
    class TextEdit : public QMainWindow
    {
    	Q_OBJECT
    
    public:
    	TextEdit(QWidget *parent = 0, Qt::WFlags flags = 0);
    	~TextEdit();
    
    protected:
    	void closeEvent ( QCloseEvent * event ) ;
    	void ReadSettings();
    private:
    	TextEditor   *m_pCentralWidget;
    };
    TextEdit::TextEdit(QWidget *parent, Qt::WFlags flags)
    	: QMainWindow(parent, flags)
    {
    	m_pCentralWidget = new TextEditor(this);
    	this->setCentralWidget(m_pCentralWidget);
    	ReadSettings();
    }
    
    TextEdit::~TextEdit()
    {
    
    }
    
    void TextEdit::closeEvent( QCloseEvent * event )
    {
    	QSettings dialogSettings("Mysoft","dialogData");   //保存窗口位置和大小
    	dialogSettings.setValue("Rect",this->rect());
    	QPoint pos = this->pos();
    	dialogSettings.setValue("positionX",this->pos().x());
    	dialogSettings.setValue("positionY",this->pos().y());
    	m_pCentralWidget->SaveSettings();
    }
    
    void TextEdit::ReadSettings()
    {
    	QSettings dialogSettings("Mysoft","dialogData");  //读取窗口位置和大小
    	dialogSettings.setValue("Rect",this->rect());
    	dialogSettings.setValue("position",this->pos());
    	QRect rect = dialogSettings.value("Rect").value<QRect>();
    	this->setGeometry(rect);
    	int posX = dialogSettings.value("positionX").toInt();
    	int posY = dialogSettings.value("positionY").toInt();
    	this->move(QPoint(posX,posY));
    	
    	
    }





        
    最新技术文章:
    ▪Android开发之登录验证实例教程
    ▪Android开发之注册登录方法示例
    ▪Android获取手机SIM卡运营商信息的方法
    ▪Android实现将已发送的短信写入短信数据库的...
    ▪Android发送短信功能代码
    ▪Android根据电话号码获得联系人头像实例代码
    ▪Android中GPS定位的用法实例
    ▪Android实现退出时关闭所有Activity的方法
    ▪Android实现文件的分割和组装
    ▪Android录音应用实例教程
    ▪Android双击返回键退出程序的实现方法
    ▪Android实现侦听电池状态显示、电量及充电动...
    ▪Android获取当前已连接的wifi信号强度的方法
    ▪Android实现动态显示或隐藏密码输入框的内容
    ▪根据USER-AGENT判断手机类型并跳转到相应的app...
    ▪Android Touch事件分发过程详解
    ▪Android中实现为TextView添加多个可点击的文本
    ▪Android程序设计之AIDL实例详解
    ▪Android显式启动与隐式启动Activity的区别介绍
    ▪Android按钮单击事件的四种常用写法总结
    ▪Android消息处理机制Looper和Handler详解
    ▪Android实现Back功能代码片段总结
    ▪Android实用的代码片段 常用代码总结
    ▪Android实现弹出键盘的方法
    ▪Android中通过view方式获取当前Activity的屏幕截...
    ▪Android提高之自定义Menu(TabMenu)实现方法
    ▪Android提高之多方向抽屉实现方法
    ▪Android提高之MediaPlayer播放网络音频的实现方法...
    ▪Android提高之MediaPlayer播放网络视频的实现方法...
    ▪Android提高之手游转电视游戏的模拟操控
     


    站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3