小编sam*_*mis的帖子

FragmentPagerAdapter仅存在于Android.Support.V4.App(而不是Android.App)中

我在Android.App中找不到找到FragmentPagerAdapter.

我不想使用Android.Support.V4.App中的Fragment,因为我的目标API是14及更高版本(Android 4.0及更高版本).所以,我想使用Android.App.Fragments的平原,以及相关的类.

我只在Android.Support.V4.App中找到它,但这对我来说不够b/c我正在尝试使用Android.App.Fragment(而不是Android.Support.V4.App.Fragment)并且那里Android.App(不是Android.Support.V4.App)中的相关类,如果我从FragmentPagerAdapter派生我的寻呼机(如果它来自支持库),我的代码将无法编译,因为Android.App和Android.Support之间的类型不匹配.V4.App.

就像这里的情况一样无法强制转换为android.app.Fragment,是否有一个"普通"的寻呼机(PagerAdapter)类我应该用它代替FragmentPagerAdapter或其他东西(就像你从普通的Activity派生而来,而不是FragmentActivity,在针对API 11或更高版本时).

下面是我正在使用的示例代码(它来自于https://github.com/xamarin/monodroid-samples/tree/master/Support4上的MonoDroid示例的Support4.sln解决方案中的FragmentPagerSupport.cs文件).

我已经注释掉引用Android.Support.V4.App的行,并用引用Android.App的代码替换它们.我找不到Android.Support.V4.App之外没有FramePagerAdapter,我真的需要它.

谢谢.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
//using Android.Support.V4.App;
//using Android.Support.V4.View;

namespace Support4
{
    [Activity (Label = "@string/fragment_pager_support")]
    [IntentFilter (new[]{Intent.ActionMain}, Categories = new[]{ "mono.support4demo.sample" })]
    //public class FragmentPagerSupport : FragmentActivity
        public class FragmentPagerSupport : Activity
    {
        const int NUM_ITEMS = 10;
        MyAdapter adapter;
        ViewPager pager;

        protected override void OnCreate (Bundle bundle)
        { …
Run Code Online (Sandbox Code Playgroud)

android xamarin.android android-fragments fragmentpageradapter

163
推荐指数
2
解决办法
5万
查看次数

Windows 10中的adb.exe位于何处?

我在Windows 10上安装了android studio 1.5.

当我输入命令行时:

亚行

我找不到命令.

我在哪里可以获得它或安装在哪里?

adb android-studio windows-10

134
推荐指数
8
解决办法
14万
查看次数

TextView背景颜色的选择器

我试图TextView在用户触摸它时更改Android 小部件的背景颜色.我已经为此创建了一个选择器,它存储在res/color/selector.xml大致看起来像这样:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:color="@color/semitransparent_white"
        />
    <item
        android:color="@color/transparent"
        />
</selector>
Run Code Online (Sandbox Code Playgroud)

clickable该属性TextView就是true那的利益,以备不时之需.

当我将此选择器分配给TextViewas时android:background="@color/selector",我在运行时遇到以下异常:

ERROR/AndroidRuntime(13130):引起:org.xmlpull.v1.XmlPullParserException:二进制XML文件行#6:标记需要一个'drawable'属性或定义drawable的子标记

当我将属性更改为drawable时,它可以工作,但结果看起来完全错误,因为ID似乎被解释为图像引用而不是颜色引用(如"drawable"所示).

令我困惑的是,我可以直接设置颜色参考,例如"@ color/black"作为背景属性.这是按预期工作的.使用选择器不起作用.

我也可以使用选择器作为textColor没有问题.

TextView在Android中应用背景颜色选择器的正确方法是什么?

android

120
推荐指数
5
解决办法
12万
查看次数

如何在android中为每个不同的屏幕大小定义dimens.xml?

Android中支持不同的屏幕尺寸(密度)时,通常关注的是为每个可能的屏幕创建不同的布局.IE

  • LDPI
  • MDPI
  • 华电国际
  • xhdpi
  • xxhdpi
  • xxxhdpi

我为xhdpi屏幕设计了一个布局作为参考,并在dimens.xml中定义了它的尺寸.现在我想支持每个可能的屏幕尺寸.我怎样才能做到这一点?

据我所知,我可以使用工具找出适合其他屏幕尺寸的dimens.xml并将其添加到我的项目中.这是在我的情况下这样做的正确方法吗?

另一个问题,我是否只需要为上面的屏幕尺寸创建dimens.xml?如果是,那么是什么w820dp

谢谢你的帮助.我只需要支持手机(不是平板电脑或其他设备).

android android-layout android-screen-support android-activity

118
推荐指数
7
解决办法
14万
查看次数

具有清晰背景的DialogFragment(不变暗)

我试图让a的背景DialogFragment完全清楚.

通过将样式项设置android:windowIsFloating为true(默认值),可以DialogFragment显示我想要的样式,但背景非常暗淡.

通过设置android:windowIsFloating为false,我得到了我想要的清晰背景,但DialogFragment可以吹到屏幕的大约95%,只留下一个小小的间隙,你可以看到它覆盖的视图.

我已经尝试了大量的调整,似乎无法覆盖这种行为.

我是否需要使用a PopupWindow来实现所需的效果,或者是否有一些我可以覆盖的样式项?

android background android-dialogfragment

21
推荐指数
2
解决办法
1万
查看次数

一种非常常见的C#模式,打破了一个非常基本的OOP原则

这是一个非常简单的问题,我仍然非常不安:

为什么现在广泛接受类通过访问器方法返回对其私有成员的引用?这不完全打破封装原则吗?如果这样可以,那为什么不公开会员!?

public class EncapsulationViolator
{
  private object abuseMe;

  public object AbuseMe 
  {
    get { return abuseMe; }
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑我正在考虑的案例就是这个

EncapsulationViolator ev = new EncapsulationViolator();

object o = ev.AbuseMe;

o.SetValue(newValue);
Run Code Online (Sandbox Code Playgroud)

现在,ev的状态已经通过传递性而发生变化,因为其成员滥用状态已发生变化.

在DDD的上下文中,如果对象是聚合根,则不行.我引用

允许外部对象仅保留对根的引用.可以传递对内部成员的瞬时引用,以便仅在单个操作中使用.因为根控制访问权限,所以不能通过对内部的更改来愚蠢.

[ 领域驱动设计,Eric Evans]

... setters schmetters ......

c# oop encapsulation design-principles solid-principles

14
推荐指数
3
解决办法
2008
查看次数

通用集合中的多态类型参数

为什么C#编译器不允许泛型集合中的多态类型(T)参数(即List [T])?

以"A"和"B"为例,其中"B"是"A"的子类

class A { }
class B : A { }
Run Code Online (Sandbox Code Playgroud)

并考虑一个带有'A'类型列表的函数

void f(List<A> aL) { }
Run Code Online (Sandbox Code Playgroud)

用"B"类型的列表调用

List<B> bL = new List<B>();

f(bL);
Run Code Online (Sandbox Code Playgroud)

给出以下错误

ERROR: cannot convert from List<B> to List<A>
Run Code Online (Sandbox Code Playgroud)

违反了什么语义规则?

除此之外,还有一个"优雅"的意思,除了循环和铸造每个元素(我想要一些糖)?谢谢.

c# generics

11
推荐指数
2
解决办法
4072
查看次数

.NET错误处理:try/catch VS事件VS return-value/status-fields

我现在正处于跨平台移动应用程序开发的一个非常关键的交叉路上,并且可以真正使用一些专业知识(如woah).

给予一定的上下文(可以回答我希望帮助),我开发基于方便,花花公子MonoCross框架.NET移动应用,使用VS2010U(不MonoDevelop的,然而,这是IOS).第一个目标平台是Android,然后是IOS和Windows Phone"端口"(如果我做对了,那就不是真的).

现在我已经奠定了坚实的基础,包括业务逻辑,数据访问层,数据库,REST Web服务等,我正在经历并试图在一些错误处理中工作,但我不确定这是什么最好的方法是.

我被告知try-catch块可能是性能命中(在这种情况下这是一个大问题),
这是真的吗?我应该使用它们谨慎,或者只是一巴掌EM地方的异常可能会被抛出(我还挺想用他们在我所有的SQLite的API调用,因为我不知道他们在做什么赫克一半的时间做).

使用事件回调是错误处理的坏事吗?我被告知只要有可能使用这些,而不是的try-catch,出于性能的原因,但我不想破坏任何设计原则和范例,并与马虎,gauh-loppy码所有的地方结束.

第三个选项,具有最小的开销,但处理起来极其烦人,是状态字段和返回值.

那你觉得怎么样?我想我正在寻找一些大方向,也许还有一些关于何时何地使用每种方法的建议,以及我最有可能遗漏的任何其他技术.如果需要更多细节,请告诉我,因为我很乐意给他们.

感谢您抽出宝贵时间!

.net c# visual-studio-2010 xamarin.android

7
推荐指数
1
解决办法
901
查看次数

正确处理WebRequest和StreamReader

在从客户端方法getRecords调用ReadToEnd方法期间,我得到一个对象处理异常,该方法使用StreamReader与Web服务器通信.

对getRecords的第一次调用成功,只是在后续调用期间发生异常,因此我没有正确关闭和处理StreamReader和关联的WebRequest.

我知道我可以将这两个对象包装在using语句中,但是它只是扩展为try/catch/finally语句.从我下面的代码中可以看出,我正在清理我的finally子句.

因此,我要么不做使用声明所做的事情,要么在我的最终声明中还有其他一些我可能遗漏的东西.如果可能的话,我宁愿不使用using语句,因为我喜欢我的代码显式.

这是代码和相关的异常:

    public int getRecords(string[] args, string[] vals)
    {
        List<string> urlList = BuildUrlRequestStrings(args, vals); 

        WebRequest request = null;
        WebResponse wresponse = null;
        StreamReader sr = null;           

        foreach (string url in urlList)
        {   
            request = WebRequest.Create(url);

            request.Method = "GET";
            request.ContentType = "application/json";
            //request.Timeout = -1;
            request.Timeout = 300000;
            request.Credentials = CredentialCache.DefaultCredentials;
            //request.ContentType = "application/xml";

            try
            {
                wresponse = request.GetResponse();

                /*using (StreamReader sr = new StreamReader(wresponse.GetResponseStream()))
                {
                    _recieveBuffer = sr.ReadToEnd().ToString();
                }*/
                sr = new StreamReader(wresponse.GetResponseStream());
                _recieveBuffer = …
Run Code Online (Sandbox Code Playgroud)

.net c# web-services httpwebrequest

7
推荐指数
1
解决办法
1万
查看次数

适用于Android开发工作站的推荐Linux Distro

我正在尝试确定哪个是原生Android开发的最佳/首选/推荐的linux发行版?

我现在正在研究Ubuntu,但我也在考虑使用CentOS(我一直很喜欢RedHat).

我想在最低限度,操作系统需要

  1. 支持最新的JDK(Android SDK需要)
  2. 运行Eclipse(这意味着还需要一个Desktop包,如GNOME或KDE).

在工作中,我使用单声道和视觉工作室在Windows上开发,但现在我已经在我的点燃火上加载了4.2.2,我真的想开始做一些原生Android的东西(这有望帮助我的Monodroid调试技能).

更新:让它成为Kindle Fire HD 8.9,因为我的电池开始变得如此轻微(我早早抓住它,它变得更糟),推开侧边几毫米,亚马逊正在发送一个升级的替代品.

谢谢.

java eclipse linux android

7
推荐指数
1
解决办法
3万
查看次数