小编Ne0*_*Ne0的帖子

ActionBarDrawerToggle的ActionBarActivity - 不使用drawerImageRes

从这个Android示例开始,我试图创建一个使用支持版本的应用程序(android.support.v4和android.support.v7).

该示例创建一个如下所示的菜单抽屉

在此输入图像描述 在此输入图像描述

我的代码得到了这个

在此输入图像描述

请注意,图标是不同的,它的移动方式是不同的,在我的版本中,它不会移动.

示例代码

public class MainActivity extends Activity {
    private DrawerLayout mDrawerLayout;
    private ListView mDrawerList;
    private ActionBarDrawerToggle mDrawerToggle;

    private CharSequence mDrawerTitle;
    private CharSequence mTitle;
    private String[] mPlanetTitles;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mTitle = mDrawerTitle = getTitle();
        mPlanetTitles = getResources().getStringArray(R.array.planets_array);
        mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
        mDrawerList = (ListView) findViewById(R.id.left_drawer);

        // set a custom shadow that overlays the main content when the drawer opens
        mDrawerLayout.setDrawerShadow(R.drawable.drawer_shadow, GravityCompat.START);
        // set up the drawer's list view with items …
Run Code Online (Sandbox Code Playgroud)

android drawerlayout android-actionbaractivity

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

如何在布局xml中使用默认的android资源?

android中有很多默认资源.我想用android.R.string.cancelandroid.R.string.ok.

我可以很容易地在代码中执行此操作

getString(android.R.string.cancel)
Run Code Online (Sandbox Code Playgroud)

但是如何在layout.xml中做到这一点

@string/cancel
Run Code Online (Sandbox Code Playgroud)

试了几件事

@android.R.string/cancel
@android.string/cancel
Run Code Online (Sandbox Code Playgroud)

但这些都行不通.我确定我已经在开发教程中看到了这个,但现在找不到它.

xml resources layout android default

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

在Windows中运行JavaScript

我想过一些简单的测试只是运行一些命令我会尝试使用一些JavaScript并从Windows XP的命令行运行它.

因此,为了快速测试,我创建了一个脚本

alert('Hello, World!');
Run Code Online (Sandbox Code Playgroud)

然后试着运行它

D:\>Cscript.exe hello.js
Microsoft (R) Windows Script Host Version 5.7
Copyright (C) Microsoft Corporation. All rights reserved.

D:\hello.js(1, 1) Microsoft JScript runtime error: Object expected
Run Code Online (Sandbox Code Playgroud)

谷歌没有帮助,我相信我错过了一些愚蠢的东西,你们中的任何人都可以解释为什么这个简单的剧本不运行?

javascript windows

10
推荐指数
3
解决办法
5万
查看次数

Jetpack Compose - 如何在屏幕组合时触发事件

我的应用程序使用 OpenID 来验证用户身份。

第一页更像是一个启动屏幕,将用户带到网页以在需要时进行授权,或者仅执行令牌的后台刷新以导航到主屏幕。

我不确定如何在不单击按钮的情况下启动身份验证流程

@Composable
fun LoginScreen(viewModel: LoginViewModel) {
    val ctx = LocalContext.current
    AppTheme {
        Screen()
    }
    viewModel.performLogin(ctx)
}       

Run Code Online (Sandbox Code Playgroud)

执行上述操作是可行的,但当应用程序导航到主屏幕时,它会再次被调用。

fun loginComplete(navController: NavHostController) {
    navController.navigate("main")
}

@Composable
fun MyApp(viewModel: LoginViewModel) {
    val navController = rememberNavController()
    viewModel.setOnLoginCompete(navController, ::loginComplete)
    NavHost(navController, startDestination = "login") {
        composable(route = "login") {
            LoginScreen(viewModel)
        }
        composable(route = "main") {
            MainScreen()
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为我不应该像在可组合函数中那样调用 PerformLogin 函数,但我看不到其他方法。我缺少什么?

android kotlin android-jetpack-compose

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

Proguard打破Android WebView,为什么?

我的活动中有一个WebView,使用Proguard进行混淆似乎打破了我的WebView,我不明白为什么.

代码非常简单,我在res/raw目录中有HTML文件,这里是调试时加载它的代码.

WebView mv = (WebView)findViewById(R.id.webView1);
mv.loadUrl("file:///android_res/raw/wesite.html");
Run Code Online (Sandbox Code Playgroud)

一旦我创建apk发布,通过proguard运行它不起作用,我只是得到无法加载页面.

我还没有在proguard配置文件中添加任何内容.

android proguard webview

6
推荐指数
1
解决办法
4759
查看次数

操作栏 - 菜单按钮 - 缺少

通过删除某些东西(我怀疑),我设法弄乱了我的一个Android项目.以下是我的清单和菜单资源.出于某种原因,当我运行应用程序时,我的操作栏没有显示菜单按钮.

<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu_settings"
    android:title="@string/menu_settings"
    android:orderInCategory="100"
    android:showAsAction="never" />
</menu>
Run Code Online (Sandbox Code Playgroud)

表现:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myapp"
android:versionCode="6"
android:versionName="2.1.0" >

<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

<uses-sdk
    android:minSdkVersion="8"
    android:targetSdkVersion="15" />

<application
    android:icon="@drawable/ic_launcher"
    android:label="@string/app_name"
    android:theme="@style/AppTheme" >
    <activity
        android:name=".MyActivity"
        android:label="@string/title_activity" 
        android:screenOrientation="portrait">
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
</application>

</manifest>
Run Code Online (Sandbox Code Playgroud)

我的活动代码中也有这个

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle item selection
    switch (item.getItemId()) {
        case R.id.menu_settings:
            return true;
        default:
            return super.onOptionsItemSelected(item);
    } …
Run Code Online (Sandbox Code Playgroud)

android missing-features android-actionbar

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

窗口小部件setOnClickPendingIntent无法启动服务

按照此处的示例我轻松创建了我的小部件。

然后,我向小部件添加了一个按钮,此按钮应启动服务,因此我将以下代码添加至了WidgetProvider

@Override
public void onEnabled(Context context) {
    Log.e("ERROR", "REMOVE ME"); // TODO remove. This is for eclipse logcat recognition
    RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);

    Intent intent = new Intent(context, RepairService.class);
    PendingIntent pi = PendingIntent.getService(context, 0, intent, 0);
    views.setOnClickPendingIntent(R.id.widget_boost, pi);
}
Run Code Online (Sandbox Code Playgroud)

代码肯定会被调用,但服务不会启动。我确定我可能已经错过了服务PendingIntent的实现,但是我看不到什么。还有其他人知道吗?

android android-widget android-service android-pendingintent

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

Windows应用商店应用 - XAML - C# - 在代码中访问ThemeResource

我有一个Styles.xaml文件,我已经声明了各种颜色和样式.

    <SolidColorBrush x:Key="MyColour" Color="#FFFF411E"/>
Run Code Online (Sandbox Code Playgroud)

我想在代码中访问它,因为我有控制权,我想将背景颜色绑定到对象中的Property.但是,这很容易实现,对象是根据对服务器调用的响应创建的,属性可以是多种颜色之一.我可以在代码中定义颜色,但是因为我在其他控件中使用相同的颜色,XAML我真的不想在应用程序中定义相同的颜色两次.所以我想要一种能够SolidColorBrush在代码中访问画笔以便能够使用它的方法.

任何想法是如何做到这一点?

c# xaml windows-store-apps

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

Android WebView还是ImageView?

我有一个应用程序,可以下载并显示来自URL的图像.这很好用

URLConnection conn = urls[i].openConnection();
conn.connect();
if(conn.getContentLength() > 0)
is = conn.getInputStream();
bis = new BufferedInputStream(is);
Bitmap temp = BitmapFactory.decodeStream(bis);
Run Code Online (Sandbox Code Playgroud)

我注意到WebView的下载和显示图像比上面的代码快得多,所以我想我会尝试.

String url = "http:\\image.jpg"
int mWidth = getSystemService(Context.WINDOW_SERVICE).getDefaultDisplay().getWidth()
webView.loadData("<html><body> <img src=\"" + url + "\" width=\"" + mWidth + "px\" height=\"auto\"></body></html>", "text/html", null);
Run Code Online (Sandbox Code Playgroud)

虽然这样可以更快地获得图像,但是它不会将图像缩放到屏幕大小,因此大图像总是超出WebView的宽度并需要滚动才能正常查看.

有谁知道如何解决问题,以便在WebView中正确显示图像或如何加快图像的下载速度?

我希望加速下载,但如果我可以正确缩放图像,我很乐意使用WebView.

android download scale webview imageview

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