- 浏览: 1065597 次
- 性别:
- 来自: 南昌
文章分类
- 全部博客 (276)
- 生活 (1)
- 代码之美 (22)
- Media (7)
- Android Widget (3)
- Android Intent (1)
- Android Activity (4)
- UI event handle--UI事件处理机制 (2)
- Java基础知识 (12)
- android Databases (5)
- Android 系统知识 (70)
- 平常遇到的问题与解决方法 (38)
- Android TextView/EditView (2)
- Thinking Java (1)
- android webkit (6)
- JSON (1)
- XML (4)
- HTTP (1)
- Google Weather API (1)
- android 2.3 NFC (10)
- android app (20)
- android framework (7)
- C++ (2)
- android System (5)
- Pthread (1)
- Wifi (8)
- Unix/Linux C (8)
- Android 4.0 (1)
- Mail (1)
- Smack 源码学习 (4)
- iOS (4)
- Android (1)
- git (1)
- Gallery3d (2)
- React-Natice (1)
最新评论
-
dd18349182956:
你是用的smack哪个版本?我用的smack4.1.3和sma ...
关于socket长连接的心跳包 -
xukaiyin:
全英文
getApplicationContext()与this,getBaseContext() -
裂风矢:
...
<category android:name="android.intent.category.DEFAULT" /> 惹的祸 -
xanthodont:
mark一下
XMPP——Smack -
Evilover3:
mark一下,学习了
XMPP——Smack
//Activity
package com.android.Somejavaknowledget;
import java.util.Date;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Somejavaknowledget extends Activity {
/** Called when the activity is first created. */
public static final String MyAction="Customized-Action-ChangeText";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);*/
//客制化Title
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_gallery_title);
TextView tv = (TextView)getWindow().findViewById(R.id.left_text);
tv.setText("hello");
DateView dv= (DateView)findViewById(R.id.tv);
dv.setUpdates(true);
Button btn = (Button) getWindow().findViewById(
R.id.close);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("finish this activity");
finish();
}
});
Button show = (Button)findViewById(R.id.change);
show.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//自定义的Action
Intent intent= new Intent();
intent.setAction(MyAction);
sendBroadcast(intent);
}
});
}
}
//DateView 继承TextView 通过reciver broadcast 动态改变text
package com.android.Somejavaknowledget;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;
import android.view.MotionEvent;
import java.text.DateFormat;
import java.util.Date;
import java.util.Formatter;
public final class DateView extends TextView {
private static final String TAG = "DateView";
private boolean mUpdating = false;
private Context mContext;
private static int count=1;
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
/* if (action.equals(Intent.ACTION_TIME_TICK)
|| action.equals(Intent.ACTION_TIMEZONE_CHANGED)) {
updateClock();
}*/
if(action.equalsIgnoreCase(Somejavaknowledget.MyAction)){
updateClock();
}
}
};
public DateView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext=context;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
setUpdates(false);
}
@Override
protected int getSuggestedMinimumWidth() {
// makes the large background bitmap not force us to full width
return 0;
}
private final void updateClock() {
//Date now = new Date();
//setText(DateFormat.getDateInstance(DateFormat.LONG).format(now));
String s=String.format("count=%d", count);
setText(s);
count++;
}
void setUpdates(boolean update) {
if (update != mUpdating) {
mUpdating = update;
if (update) {
// Register for Intent broadcasts for the clock and battery
IntentFilter filter = new IntentFilter();
/*filter.addAction(Intent.ACTION_TIME_TICK);
filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);*/
filter.addAction(Somejavaknowledget.MyAction);
mContext.registerReceiver(mIntentReceiver, filter, null, null);
updateClock();
} else {
mContext.unregisterReceiver(mIntentReceiver);
}
}
}
}
package com.android.Somejavaknowledget;
import java.util.Date;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;
public class Somejavaknowledget extends Activity {
/** Called when the activity is first created. */
public static final String MyAction="Customized-Action-ChangeText";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/*requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);*/
//客制化Title
requestWindowFeature(Window.FEATURE_CUSTOM_TITLE);
setContentView(R.layout.main);
getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.custom_gallery_title);
TextView tv = (TextView)getWindow().findViewById(R.id.left_text);
tv.setText("hello");
DateView dv= (DateView)findViewById(R.id.tv);
dv.setUpdates(true);
Button btn = (Button) getWindow().findViewById(
R.id.close);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
System.out.println("finish this activity");
finish();
}
});
Button show = (Button)findViewById(R.id.change);
show.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//自定义的Action
Intent intent= new Intent();
intent.setAction(MyAction);
sendBroadcast(intent);
}
});
}
}
//DateView 继承TextView 通过reciver broadcast 动态改变text
package com.android.Somejavaknowledget;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.util.AttributeSet;
import android.util.Log;
import android.widget.TextView;
import android.view.MotionEvent;
import java.text.DateFormat;
import java.util.Date;
import java.util.Formatter;
public final class DateView extends TextView {
private static final String TAG = "DateView";
private boolean mUpdating = false;
private Context mContext;
private static int count=1;
private BroadcastReceiver mIntentReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
/* if (action.equals(Intent.ACTION_TIME_TICK)
|| action.equals(Intent.ACTION_TIMEZONE_CHANGED)) {
updateClock();
}*/
if(action.equalsIgnoreCase(Somejavaknowledget.MyAction)){
updateClock();
}
}
};
public DateView(Context context, AttributeSet attrs) {
super(context, attrs);
mContext=context;
}
@Override
protected void onAttachedToWindow() {
super.onAttachedToWindow();
}
@Override
protected void onDetachedFromWindow() {
super.onDetachedFromWindow();
setUpdates(false);
}
@Override
protected int getSuggestedMinimumWidth() {
// makes the large background bitmap not force us to full width
return 0;
}
private final void updateClock() {
//Date now = new Date();
//setText(DateFormat.getDateInstance(DateFormat.LONG).format(now));
String s=String.format("count=%d", count);
setText(s);
count++;
}
void setUpdates(boolean update) {
if (update != mUpdating) {
mUpdating = update;
if (update) {
// Register for Intent broadcasts for the clock and battery
IntentFilter filter = new IntentFilter();
/*filter.addAction(Intent.ACTION_TIME_TICK);
filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);*/
filter.addAction(Somejavaknowledget.MyAction);
mContext.registerReceiver(mIntentReceiver, filter, null, null);
updateClock();
} else {
mContext.unregisterReceiver(mIntentReceiver);
}
}
}
}
发表评论
-
ContentProvider --Call方法
2018-04-03 16:43 3768很早之前接触ContentProvider知道它提供的方法就是 ... -
android.database.sqlite.SQLiteReadOnlyDatabaseException: attempt to write a read
2015-11-27 14:50 2954android.database.sqlite.SQLiteR ... -
形成一个Resource Uri
2011-02-28 09:51 2968形成一个Resource Uri: public Uri ... -
getStringArray
2011-02-26 11:25 4222将String集放在String的resource里面:(Qu ... -
如何让你的list不被修改
2011-02-25 16:52 1486今天在看QuickSearchBox的源码:发现了可以对lis ... -
按Back key把Activity关掉即使有键盘的时候
2011-02-21 10:38 3088一般情况下,当键盘显示的时候,你按下back只会将键盘关掉,但 ... -
R.bool.use_32bit
2011-02-09 16:49 1964很久没有写新的文章,自己懒了吧,没了动力。今天还是耐住了惰性, ... -
让class只有一个实例的例子
2010-10-25 16:49 1809最近在学习android 的webkit,看到一些自己认为是好 ... -
滚动 TextView
2010-04-16 11:39 1297http://bbs.lupa.gov.cn/home/spa ... -
查询Internal 或External的容量
2010-04-14 21:04 1245我们可通过StatF来查询Internal或External的 ... -
关闭android程序
2010-03-17 17:17 1659转自:http://mingkg21.iteye.com/bl ... -
Java Formatter
2010-03-09 20:33 1704摘自:http://hi.baidu.com/banseon/ ... -
获得手机系统设置的区域
2010-03-09 19:45 2020通过Locate这个类,我们可以获得手机系统设置的区域: ja ... -
关于android获得图片的总结
2010-03-08 14:50 63721,已将图片保存到drawable目录下 [color=cya ... -
android 视频的缩图制作
2010-03-05 15:46 2818在Gallery 这支ap里我们可 ... -
RandomAccessFile
2010-03-05 15:00 4050随机访问类(RandomAccessFile) - [] 输 ... -
Java iterator
2010-02-27 11:29 1489摘自[url]http://hi.baidu.com/heyi ... -
检查盘volumn的容量
2010-02-26 10:57 1413通过StatFs可以获得Filesystem 的状态 Str ... -
检查盘volumn是否可以写入
2010-02-26 10:44 980通过创建一个临时文件来确定是否盘可写。注意不要把文件放在根目录 ... -
Thread
2010-02-26 10:08 1901android 对UI的操作只能在UI线程(一般是在Activ ...
相关推荐
TextView是Android布局中的一个视图元素,它用于显示单行或多行的文本。通过XML布局文件或代码动态创建,可以设置字体、颜色、大小等属性。要使TextView中的文本成为可点击的链接,我们需要使用`android:autoLink`...
在布局XML文件中定义一个TextView,并在代码中设置其文本,同时启用`android:textIsSelectable`属性以允许文本选择。 ```xml <TextView android:id="@+id/hyperlink_textview" android:layout_width="wrap_...
要让Android系统知道当用户点击TextView中的链接时应启动我们的应用,我们需要在AndroidManifest.xml中添加一个自定义的Intent Filter。例如,如果我们要处理http和https链接,可以这样配置: ```xml <activity ...
可以使用`Intent.ACTION_VIEW`和`Uri.parse()`检查链接是否有效,避免启动无效或不安全的URL。 - `Linkify`类可以方便地添加多种类型的链接,例如电子邮件、电话号码等,但可能无法处理所有自定义格式的链接。对于...
在Android开发中,`TextView` 是一个非常基础且重要的组件,通常用于显示文本信息。然而,`TextView` 不仅仅局限于静态展示,它还可以通过添加Intent和处理表情来增强交互性,实现点击后跳转到其他Activity的功能。...
例如,可以创建一个自定义View,根据电池百分比改变View的宽度或高度,同时添加平滑过渡的动画效果。 在项目`BatteryDemo`中,开发者可能已经实现了类似的示例代码,你可以查看并学习其中的实现细节。通过以上步骤...
首先,我们要创建一个新的Java类,继承自Android的`TextView`类。在`LinkTextView`类中,我们需要重写一些关键方法来实现链接的识别和点击事件处理。具体步骤如下: 1. **初始化**: 在构造函数中,我们可以添加一些...
在Android开发中,Intent是一种非常重要的组件,它用于在应用程序的不同组件之间传递消息,比如启动一个Activity或Service,甚至在不同应用之间进行数据共享。在这个名为"Android整数乘法计算器"的学习项目中,我们...
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(link.getURL())); widget.getContext().startActivity(intent); } return true; } else { return super.onTouchEvent(widget, buffer, event); } ...
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); ((Activity) widget.getContext()).startActivity(intent); } // 可选:设置链接的下划线样式 @Override public void updateDrawState...
Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url)); startActivity(browserIntent); } }; spannable.setSpan(clickSpan, 0, text.length(), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); textView....
### Android中的自定义权限详解与实现 #### 一、引言 在Android系统中,为了保护用户隐私和数据安全,应用程序被赋予了基于权限的安全模型。Android预定义了一系列权限,如访问联系人、发送短信等,但同时也允许...
TextView是Android UI组件库中的一个基本元素,用于显示单行或多行文本。它支持多种格式化选项,包括设置字体、颜色、大小以及插入HTML标签等。在处理URL时,我们可以利用Spanned和ClickableSpan类来实现链接的识别...
在Android开发中,实现“Android自定义动态布局—多图片上传”是一项常见的需求,尤其是在社交应用、电商应用等场景中。下面将详细讲解这个过程,包括如何使用Java代码动态创建布局以及实现多图片上传功能。 一、...
在Android开发中,TextView是用于显示文本的基本组件。在许多应用中,我们可能需要在TextView中展示带有超链接的文本,比如帮助文档、用户协议等。`TextView`默认并不支持直接点击超链接,但通过一些技巧,我们可以...
在Android开发中,`TextView` 是一个非常重要的组件,它用于显示单行或多行文本。在许多场景下,我们不仅需要展示普通的文本,还可能需要对文本进行样式化处理,或者对部分文字添加特殊功能,比如点击触发事件、设置...
在Android开发中,`TextView` 是一个至关重要的组件,它用于显示单行或多行文本。在本例程中,我们将探讨如何使用`TextView`来实现更丰富的视觉效果,包括不同颜色、字体、带链接的文本,以及具有圆角边框和渐变背景...
在Android应用开发中,`TextView`是一个非常基础且重要的组件,通常用于显示文本信息。而当我们需要在`TextView`中的文本中嵌入可点击的链接,以触发特定的行为,如跳转到另一个`Activity`,这时就需要用到特殊的...
我们可以创建一个自定义的View,比如BatteryView,继承自ImageView或者TextView。在BatteryView中,我们根据电池电量动态改变图片或文字的显示。如果选择使用ImageView,可以准备一组代表不同电量的图片资源,根据...
在Android开发中,文本展示是常见的需求之一,而TextView作为主要的文本展示控件,有时候我们需要在其中实现更丰富的展示效果,比如插入表情、添加超链接、改变文字大小和加粗等。本教程将深入讲解如何利用...