我有一个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
重绘.是对的吗?有没有办法只重绘我想要的按钮/图标?
谢谢 :)
我在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) 我想在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()
全局变量之前使用资源?
我正在尝试建立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) 我遇到了与保存我的活动状态相关的问题.我在这里搜索并阅读了很多问题但是我无法得到我的问题的答案.
我有一个Activity
A 2 Fragments
.的Activity
A保持其由显示数据Fragments
.当我推出一个新的Intent
为我设置Activity
了Activity
一个暂停(不被破坏),onPause()
和onSaveInstanceState()
方法被调用,所以我救我的所有数据onSaveInstaceState()
.
当我从我的设置返回时使用后退按钮Activity
A再次显示但是onCreate()
没有调用方法因为Activity
没有被销毁,而是onResume()
方法被调用但是我在Activity
A中丢失了我的变量状态而我无法访问Bundle
我保存的onSaveInstanceState()
因为onCreate()
不叫.
那么onSaveInstanceState()
只有在旋转屏幕时才有用吗?如何访问我保存的所有数据onSaveInstanceState()
?或者我应该将它们保存到文件中或以后SharedPrefs
访问它们onResume()
?
我正在使用 Mapbox GL 显示地图并从其中心裁剪固定大小的图像。它适用于我设计的特定分辨率(1920x1080),但是当我开始使页面响应地图样式width
和height
更改时,画布大小也开始更改!
因此,当我裁剪图像时,大小应该始终不同,因为 900 像素画布上的 300 像素与 2000 像素画布上的 300 像素不同。如果我在 Chrome 中将设备类型从桌面更改为移动,画布大小甚至会发生巨大变化。
有什么方法可以使画布 DOM 大小固定,同时使用 CSS 属性缩放整个地图,就像在正常情况下所做的那样canvas
?我尝试这样做trackResize: false
并且画布 DOM 大小保持固定,但地图也没有缩放以适应容器。
我正在使用带有下拉菜单的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,因此每次启动每个活动时它都会自动调用,所以我必须为每个活动放置代码.怎么了?我怎样才能防止这种情况发生?
我正在尝试自动生成我的数据库(如果它不存在)并运行该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-Database
在Nuget
控制台中运行时,数据在创建数据库后填充,但是不调用MigrateDatabaseToLatestVersion
该Seed()
方法.
可能发生什么?我尝试从这里手动运行迁移:
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)
但也行不通. …
我有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) 来自这个问题,我正在尝试使用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)