小编And*_*res的帖子

动态更改ActionBar中的图标

我有一个Activity它有一个ActionBar,但我需要改变的图标ActionBar动态,我有一个暂停播放按钮,我需要更换播放与按钮暂停按钮就可以了用户点击.我搜索过,发现它:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if(DEBUG) Log.i("onCreateOptionsMenu()", "onCreateOptionsMenu() -> LogicAnalizerView");
    //menu.add("").setIcon(R.drawable.pause).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.actionbarlogic, menu);
    menu.removeItem(R.id.pauseLogic);

    return true;
}
Run Code Online (Sandbox Code Playgroud)

因此,通过这种方式,我删除了暂停按钮,我也可以添加它,但它只会在我启动Activity并且ActionBar绘制时发生.我怎么强迫重绘ActionBar?此外,通过这种方式,整个ActionBar重绘.是对的吗?有没有办法只重绘我想要的按钮/图标?

谢谢 :)

android android-actionbar

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

使用Python 3读取JSON文件

我在Windows 10 x64上使用Python 3.5.2.在JSON我读文件是是一种JSON含有2个以上阵列阵列.

我正在尝试JSON使用该json模块解析此文件.如文档中所述,JSON文件必须符合RFC 7159.我在这里检查了我的文件,它告诉我RFC 7159格式完全没问题,但是在尝试使用这个简单的python代码读取它时:

with open(absolute_json_file_path, encoding='utf-8-sig') as json_file:
    text = json_file.read()
    json_data = json.load(json_file)
    print(json_data)
Run Code Online (Sandbox Code Playgroud)

我得到了这个例外:

Traceback (most recent call last):
  File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\pydevd.py", line 2217, in <module>
    globals = debugger.run(setup['file'], None, None)
  File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\pydevd.py", line 1643, in run
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Program Files (x86)\JetBrains\PyCharm 4.0.5\helpers\pydev\_pydev_imps\_pydev_execfile.py", …
Run Code Online (Sandbox Code Playgroud)

python parsing json

19
推荐指数
2
解决办法
6万
查看次数

如何在onCreate()之前对静态String使用getString()?

我想在getString()创建活动之前使用从资源中获取String以将其分配给String数组:

private static final String[] MenuNames = {
    Resources.getSystem().getString(R.string.LCMeterMenu),
    Resources.getSystem().getString(R.string.FrecMenu),
    Resources.getSystem().getString(R.string.LogicAnalyzerMenu),
    "Prueba con achartengine",
    Resources.getSystem().getString(R.string.BrazoMenu)
};
Run Code Online (Sandbox Code Playgroud)

当我使用时Resources.getSystem().getString(R.string.LCMeterMenu),Eclipse不会抱怨但是我在运行时遇到错误:

引起:android.content.res.Resources $ NotFoundException:字符串资源ID#0x7f0a000a

但如果我把它放进去onCreate():

Log.i("StringR", "String: " + getString(R.string.LCMeterMenu));
Run Code Online (Sandbox Code Playgroud)

我得到了String,但我不能将它分配给我之前定义的最终字符串.如果我在使用getString()之前只使用onCreate()静态错误消息.如何在onCreate()全局变量之前使用资源?

string static android android-resources

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

如何与USB设备通信?

我正在尝试建立USB通信作为主机.我在这里按照http://developer.android.com/guide/topics/usb/host.html中的示例进行操作,但我无法正常工作.这是我的代码:

private static final String ACTION_USB_PERMISSION = "com.multitools.andres.LCView";
    UsbDevice device;
    //Pide permisos al usuario para comunicacion con el dispositivo USB
    private final BroadcastReceiver mUsbReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (ACTION_USB_PERMISSION.equals(action)) {
                synchronized (this) {
                    UsbDevice device = (UsbDevice)intent.getParcelableExtra(UsbManager.EXTRA_DEVICE);
                    if (intent.getBooleanExtra(UsbManager.EXTRA_PERMISSION_GRANTED, false)) {
                        if(device != null){
                            //call method to set up device communication
                        }
                    } 
                    else {
                        Log.d(TAG, "permission denied for device " + device);
                    }
                } …
Run Code Online (Sandbox Code Playgroud)

usb android

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

如何在onResume()中检索onSaveInstanceState()包?

我遇到了与保存我的活动状态相关的问题.我在这里搜索并阅读了很多问题但是我无法得到我的问题的答案.

我有一个ActivityA 2 Fragments.的ActivityA保持其由显示数据Fragments.当我推出一个新的Intent为我设置ActivityActivity一个暂停(不被破坏),onPause()onSaveInstanceState()方法被调用,所以我救我的所有数据onSaveInstaceState().

当我从我的设置返回时使用后退按钮ActivityA再次显示但是onCreate()没有调用方法因为Activity没有被销毁,而是onResume()方法被调用但是我在ActivityA中丢失了我的变量状态而我无法访问Bundle我保存的onSaveInstanceState()因为onCreate()不叫.

那么onSaveInstanceState()只有在旋转屏幕时才有用吗?如何访问我保存的所有数据onSaveInstanceState()?或者我应该将它们保存到文件中或以后SharedPrefs访问它们onResume()

android android-lifecycle android-activity

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

如何在 Mapbox GL 中修复画布大小?

我正在使用 Mapbox GL 显示地图并从其中心裁剪固定大小的图像。它适用于我设计的特定分辨率(1920x1080),但是当我开始使页面响应地图样式widthheight更改时,画布大小也开始更改!

因此,当我裁剪图像时,大小应该始终不同,因为 900 像素画布上的 300 像素与 2000 像素画布上的 300 像素不同。如果我在 Chrome 中将设备类型从桌面更改为移动,画布大小甚至会发生巨大变化。

有什么方法可以使画布 DOM 大小固定,同时使用 CSS 属性缩放整个地图,就像在正常情况下所做的那样canvas?我尝试这样做trackResize: false并且画布 DOM 大小保持固定,但地图也没有缩放以适应容器。

mapbox-gl mapbox-gl-js

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

ActionBar中的onNavigationItemSelected在启动时被调用怎么能避免呢?

我正在使用带有下拉菜单的ActionBar,并onNavigationItemSelected()在创建Activity时立即调用,因此调用第一个项目.我的下拉菜单的第一项是Home,与按下应用程序图标的操作相同,android.R.id.home因此当应用程序启动时它会自行调用.为了避免这种情况发生,我有这个代码:

if(this.getClass() != FrecView.class){  //if i am not currently on the Activity
    Intent frec = new Intent(this, FrecView.class);
    frec.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(frec);
}
Run Code Online (Sandbox Code Playgroud)

但我在所有活动中都有ActionBar,因此每次启动每个活动时它都会自动调用,所以我必须为每个活动放置代码.怎么了?我怎样才能防止这种情况发生?

android android-actionbar

10
推荐指数
2
解决办法
7774
查看次数

MigrateDatabaseToLatestVersion没有运行的Seed()方法

我正在尝试自动生成我的数据库(如果它不存在)并运行该Seed()方法来填充数据.在我的数据库上下文构造函数中,我有:

Database.SetInitializer(new MigrateDatabaseToLatestVersion<MyDBContext, Configuration>());
Run Code Online (Sandbox Code Playgroud)

这很好用,我的数据库会根据需要自动创建所有表,但似乎Seed()没有调用该方法,我的数据库是空的.这是我的班级:

internal sealed class Configuration : DbMigrationsConfiguration<Context.MyDBContext>
{

    public Configuration()
    {
        AutomaticMigrationsEnabled = true;
    }

    protected override void Seed(Context.MyDBContext context)
    {
        context.Users.AddOrUpdate(
            new Entities.User() { Email = "default@default.com", Password = "", Language = "en", CreatedDate = DateTime.Now }
        );

        base.Seed(context);
    }
}
Run Code Online (Sandbox Code Playgroud)

当我Update-DatabaseNuget控制台中运行时,数据在创建数据库后填充,但是不调用MigrateDatabaseToLatestVersionSeed()方法.

可能发生什么?我尝试从这里手动运行迁移:

var configuration = new MyDbContextConfiguration();
configuration.TargetDatabase = new DbConnectionInfo(
    database.ConnectionString, database.ProviderName);

var migrator = new DbMigrator(configuration);
migrator.Update();
Run Code Online (Sandbox Code Playgroud)

但也行不通. …

c# entity-framework ef-migrations

9
推荐指数
1
解决办法
4967
查看次数

如何将标头和首选项对象添加到不使用XML文件而是使用Java的PreferenceActivity?

我有PreferenceFragment和PreferenceActivity,我通过这种方式从XML文件中添加标题:

PreferenceActivity

@Override
public void onBuildHeaders(List<Header> target) {  
    if(DEBUG) Log.i("PreferenceActivity", "onBuildHeaders() -> LogicAnalizerPrefs");
    if(android.os.Build.VERSION.SDK_INT >= 12) {
        loadHeadersFromResource(R.xml.preference_header_logicanalizer, target);
    }
}
Run Code Online (Sandbox Code Playgroud)

PreferenceFragment:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        if(DEBUG) Log.i("PreferenceFragment", "onCreate() -> LogicAnalizerPrefsFragment");
        int res = getActivity().getResources().getIdentifier(getArguments().getString("logicprefsheaders"), "xml", getActivity().getPackageName());
        addPreferencesFromResource(res);
    }
Run Code Online (Sandbox Code Playgroud)

我有标题的XML文件是:

R.xml.preference_header_logicanalizer:

<header
        android:fragment="com.protocolanalyzer.andres.LogicAnalizerPrefsFragment"
        android:icon="@drawable/settings"
        android:title="General" >
        <extra
            android:name="logicprefsheaders"
            android:value="logicgeneral" />
    </header>
    <header
        android:fragment="com.protocolanalyzer.andres.LogicAnalizerPrefsFragment"
        android:icon="@drawable/settings"
        android:title="Canal 1" >
        <extra
            android:name="logicprefsheaders"
            android:value="c1analizerprefs" />
    </header>
    <header
        android:fragment="com.protocolanalyzer.andres.LogicAnalizerPrefsFragment"
        android:icon="@drawable/settings"
        android:title="Canal 2" >
        <extra
            android:name="logicprefsheaders"
            android:value="c2analizerprefs" />
    </header>
    <header
        android:fragment="com.protocolanalyzer.andres.LogicAnalizerPrefsFragment"
        android:icon="@drawable/settings"
        android:title="Canal …
Run Code Online (Sandbox Code Playgroud)

android android-preferences android-fragments

7
推荐指数
2
解决办法
6592
查看次数

以编程方式为模型生成简单的UV映射

来自这个问题,我正在尝试使用Three.js以编程方式为某些模型生成UV映射,我需要这个,因为我的模型也是以编程方式生成的,我需要对它们应用简单的纹理.我已经在这里阅读并成功生成了一些简单的3D文本的UV映射,但是当将相同的映射应用于更复杂的模型时,它就无法工作.

我试图应用的纹理是这样的:

在此输入图像描述

黑色背景在PNG图像中只是透明的.我需要将它应用到我的模型中,它只是一个闪光效果,所以我不关心模型中的确切位置,是否可以通过编程方式为这种情况创建一个简单的UV Map?

我正在使用链接问题中的代码,该代码适用于平面模型,但不适用于非平面模型:

assignUVs = function( geometry ){

    geometry.computeBoundingBox();

    var max     = geometry.boundingBox.max;
    var min     = geometry.boundingBox.min;

    var offset  = new THREE.Vector2(0 - min.x, 0 - min.y);
    var range   = new THREE.Vector2(max.x - min.x, max.y - min.y);

    geometry.faceVertexUvs[0] = [];
    var faces = geometry.faces;

    for (i = 0; i < geometry.faces.length ; i++) {

      var v1 = geometry.vertices[faces[i].a];
      var v2 = geometry.vertices[faces[i].b];
      var v3 = geometry.vertices[faces[i].c];

      geometry.faceVertexUvs[0].push([
        new THREE.Vector2( ( v1.x + offset.x ) …
Run Code Online (Sandbox Code Playgroud)

uv-mapping three.js

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