将textView autoLinkMask
设置为Linkify.ALL
,我可以打开链接,浏览器显示网页.
我需要调用另一个活动来完成它的webView不会离开应用程序.
重要笔记:
我看遍了movementMethod
和IntentFilters
,可能会错过的东西,但看起来它也没有办法.
那么,任何拦截触摸链接的选项TextView
都可以用它来打开浏览器吗?
如果你想提一下这个问题,请提出一些论据,为什么它似乎没有像我一样解决同样的问题.
到目前为止我所做的是具有普通文本和可点击跨度的文本视图的列表视图:
单击我打开URL的跨度,单击textView周围的项目查看导致listView OnItemClickListener
导航到项目详细信息,这很好:
现在的问题是:
触摸textView使普通文本有点突出显示(完全选择项目时具有相同的颜色),textView的
OnTouchListener
触摸事件触发但不触发OnFocusChangeListener
事件,并且项目的视图不会获得选择样式.尝试FOCUS_BLOCK_DESCENDANTS
了listView的所有变体,项目视图,focusable
启用或禁用textView 具有相同的结果.
幸运的是,textView OnClickListener
事件以这种方式触发,但这太丑了:由于所选文本颜色与项目颜色相同,因此文本是不可见的,而触摸未被释放,没有其他迹象表明用户将转到其他项目详细信息比那丑陋的文字消失了.
我怀疑发生这种情况是因为Spannable
textView 的内容是,并且不是CliclableSpan-s的部分以这种奇怪的方式运行.
一旦接触到普通文本,我是否有机会选择该项目?
listView项目布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:descendantFocusability="blocksDescendants"
android:orientation="horizontal" >
<ImageView
android:id="@+id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_vertical"
android:layout_marginBottom="5dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="5dp"
android:focusable="false" />
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TextView
android:id="@+id/title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="5dp"
android:layout_marginTop="5dp"
android:focusable="false"
android:text=""
android:textAppearance="?android:attr/textAppearanceLarge"
android:textStyle="bold" />
<TextView
android:id="@+id/info"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:focusable="false"
android:text=""
android:textAppearance="?android:attr/textAppearanceSmall" />
<TextView
android:id="@+id/details"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="4dp"
android:layout_marginLeft="4dp"
android:layout_marginRight="4dp"
android:focusable="false" …
Run Code Online (Sandbox Code Playgroud) 我正在使用android支持库v4修订版11并不时,我看到下面的堆栈跟踪; 我怀疑它是由于从最近发布而发生的,因此我尝试访问的模型为空.无论如何,这个跟踪让我想知道为什么在活动被销毁时调用onCreateView,以及处理这种情况的最佳方法是什么?
java.lang.NullPointerException
at com.example.dialogs.ExampleDialogFragment.onCreateView(ExampleDialogFragment.java:53)
at android.support.v4.app.Fragment.performCreateView(Fragment.java:1460)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:911)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1088)
at android.support.v4.app.FragmentManagerImpl.moveToState(FragmentManager.java:1070)
at android.support.v4.app.FragmentManagerImpl.dispatchReallyStop(FragmentManager.java:1888)
at android.support.v4.app.FragmentActivity.onReallyStop(FragmentActivity.java:787)
at android.support.v4.app.FragmentActivity.doReallyStop(FragmentActivity.java:764)
at android.support.v4.app.FragmentActivity.onDestroy(FragmentActivity.java:322)
at android.app.ActivityThread.performDestroyActivity(ActivityThread.java:3642)
at android.app.ActivityThread.handleDestroyActivity(ActivityThread.java:3673)
at android.app.ActivityThread.access$2900(ActivityThread.java:125)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:123)
at android.app.ActivityThread.main(ActivityThread.java:4627)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:521)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:858)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:616)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
崩溃后,后台堆栈中的活动恢复,我会检查模型在活动中是否有效onResume()
,onStart()
并且onCreate(Bundle savedInstanceState)
.如果模型无效,我从那里开始另一个活动FLAG_ACTIVITY_NO_HISTORY
,呼叫finish()
和return;
例如
@Override
public void onResume() {
Model cm = Application.getModel();
final boolean isModelAvailable = cm != null;
if (!isModelAvailable) { …
Run Code Online (Sandbox Code Playgroud) 我正在创建一个应用程序,我需要使用UITableView
s以有组织的方式显示内容,但自从我更新到iOS 8和Xcode 6后,我几乎在整个视图中都得到了一个神秘的灰盒子.这可以在下图中看到.这不会发生在每一个UITableView
,只有一些(没有明显的模式).
寻找Android(SDK 7+)类的简单开源非copyleft缓存.
目的是主要存储Bitmap
异步提取的s(因此我不需要将此功能包含在缓存类中).
我正在使用weakList来实现这个目的,这自然是一个糟糕的解决方案,Guava缓存虽然好一点,但仍然不太好.
缓存最好能够存储任何可序列化的Object
,而不仅仅是a Bitmap
,并且我可以轻松地清除对象添加到缓存时使用的某些标记的对象.
最好的选择是获取文件系统缓存,就像包装sqlite数据库一样.如果缓存被清除会很好Settings >Manage Application > Clear Cache
Q现在的问题是,有没有办法在当前公众可用的Xcode 4.3.2运行的MacOS 10.7.3禁用动画与触控板的手势怎么回事?
描述我非常关注新的Lion动画,同时使用触控板手势前进/后退.使用键盘快捷键,页面会立即发生变化,并且只需要一两秒左右的时间,就可以在代码中找到需要找到的东西.
尝试我尝试的是读取终端中的默认值,寻找任何动画/持续时间键 - 没有成功.
注意看起来像先生.库克批评苹果公司在准备移动/固定外观和感觉时所做的事情.如果有任何启动项目收集所有用户的自定义,我会很高兴知道.到目前为止,我尝试了该itweax
应用程序,但它还没有预期的功能.
Safari的内容并不像内容重要性那么多,所以我不介意留下Safari动画,但是在系统级别上为所有应用程序更改它也很好.
PS我认为这是关于"程序员常用的软件工具"中提到的"我可以在这里问什么样的问题?" SO FAQ部分.
是否有可能创建Theme
,而不必主题的预编译(意指数量有限,两者的OS运主题和资源XML)?该主题将在应用程序启动期间根据用户配置应用(值在运行时更改,但在创建样式化活动之前,值来自大范围而非集合的http服务).
欢迎使用任何其他解决方案,直到它需要在任何地方使用自定义的View类.
我现在需要的是设置全局默认TextView文本颜色,当然我不想在任何地方使用子类,我认为失去优化没有巨大的灾难,或者至少看到性能差异会很好.
显然CGFloat
是double
在arm64上:
#if defined(__LP64__) && __LP64__
# define CGFLOAT_TYPE double
# define CGFLOAT_IS_DOUBLE 1
# define CGFLOAT_MIN DBL_MIN
# define CGFLOAT_MAX DBL_MAX
#else
# define CGFLOAT_TYPE float
# define CGFLOAT_IS_DOUBLE 0
# define CGFLOAT_MIN FLT_MIN
# define CGFLOAT_MAX FLT_MAX
#endif
Run Code Online (Sandbox Code Playgroud)
所以代码
NSScanner *scanner = [NSScanner scannerWithString:string];
CGFloat c[components];
[scanner scanFloat:&c[i]]
Run Code Online (Sandbox Code Playgroud)
这对于32位应用程序来说效果很好,但是对于64位应用程序来说是破碎的.它可以替换为
NSScanner *scanner = [NSScanner scannerWithString:string];
CGFloat c[components];
#if CGFLOAT_IS_DOUBLE
[scanner scanDouble:&c[i]];
#else
[scanner scanFloat:&c[i]];
#endif
Run Code Online (Sandbox Code Playgroud)
但是有更好的选择吗?
listView中有一行我希望与listView具有相同的高度(让我们说它是全屏).
行布局看起来像
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<ImageView
android:id="@+id/imageView"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/error" />
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/imageView"
android:layout_centerHorizontal="true"
android:layout_marginTop="14dp"
android:minHeight="30dip"
android:textAppearance="?android:attr/textAppearanceMedium"/>
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)
而适配器的getView是
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = inflater.inflate(R.layout.myrow, parent, false);
return row;
}
Run Code Online (Sandbox Code Playgroud)
Bu显示的行与它的显示方式相同android:layout_height="wrap_content"
.
布局预览显示填充它的父级和我正在使用的行inflate(R.layout.myrow, parent, false);
,listView肯定是全屏显示的,行只有图像+ textView一样高.
我错过了重要的事情吗?
我创建CGGradientRef
与CGGradientCreateWithColorComponents其被证明可以支持alpha通道:
此数组中的项目数应为count的乘积和颜色空间中的组件数.例如,如果颜色空间是RGBA颜色空间,并且您希望在渐变中使用两种颜色(一种用于起始位置,另一种用于结束位置),则需要在组件中提供8个值 - 红色,绿色,蓝色和第一种颜色的Alpha值,后跟第二种颜色的红色,绿色,蓝色和Alpha值.
以下是完整的视图实现:
.H
@interface AlphaGrad : UIView
@end
Run Code Online (Sandbox Code Playgroud)
.M
@implementation AlphaGrad
- (id)initWithFrame:(CGRect)frame
{
self = [super initWithFrame:frame];
if (self) {
}
return self;
}
-(void) drawRect:(CGRect)rect {
CGContextRef ctx = UIGraphicsGetCurrentContext();
CGContextSaveGState(ctx);
CGContextClip(ctx);
CGGradientRef gradient = [self newGradientWithColors:[NSArray arrayWithObjects:[UIColor blackColor], [UIColor colorWithRed:0 green:0 blue:0 alpha:0.0f], nil]
locations:[NSArray arrayWithObjects:@0, @1, nil]];
CGContextDrawLinearGradient(ctx, gradient, CGPointMake(rect.origin.x, rect.origin.y),
CGPointMake(rect.origin.x, rect.origin.y+rect.size.height), kCGGradientDrawsAfterEndLocation);
CGGradientRelease(gradient);
CGContextRestoreGState(ctx);
}
- (CGGradientRef)newGradientWithColors:(NSArray*)colorsArray locations:(NSArray*)locationsArray {
int count = [colorsArray count];
CGFloat* components = …
Run Code Online (Sandbox Code Playgroud) 该应用程序在测试时工作得非常好,但delegate:self
我接下来......
将'ViewController*const __strong'发送到不兼容类型'id <UIActionSheetDelegate>'的参数
任何有关这方面的帮助都非常感谢,因为我已经有好几天了!
我的Viewcontroller.h是......
#import <UIKit/UIKit.h>
#import <Social/Social.h>
#import "Accounts/Accounts.h"
#import <MessageUI/MessageUI.h>
@interface ViewController : UIViewController<MFMailComposeViewControllerDelegate>
{
UIAlertView *objresponseAlert;
}
@property (weak, nonatomic) IBOutlet UITextView *myTextView;
- (IBAction)emailButton:(id)sender;
@end
Run Code Online (Sandbox Code Playgroud)
在我的ViewController.m中,我有....
- (IBAction)emailButton:(id)sender {
UIActionSheet *actionsheet = [[UIActionSheet alloc]
initWithTitle:@"Title"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Email", nil];
[actionsheet showInView:self.view];
}
Run Code Online (Sandbox Code Playgroud) 我的主要问题是在Core Data之外保存和检索数据.
我期待用持久数据保存1个变量.
按下第二个按钮后例行程序崩溃.
override func viewDidLoad() {
super.viewDidLoad()
var amy="2"
NSUserDefaults.standardUserDefaults().setObject((amy), forKey: "ggpass")
}
@IBAction func pass(sender: AnyObject) {
// Retrieve the original Variable
NSUserDefaults.standardUserDefaults().synchronize()
var aname5 = (NSUserDefaults.standardUserDefaults().objectForKey("ggpass"))! as String
gpass = (aname5.toInt())!
gpass=gpass+1
///Save Data
NSUserDefaults.standardUserDefaults().setObject((gpass), forKey: "ggpass")
}
Run Code Online (Sandbox Code Playgroud)