小编moa*_*emi的帖子

android:如何在我的应用程序中实现Go Launcher等首次教程?

Go Launcher有一个很好的第一次教程.它与Stock ICS第一次运行非常相似.我想学习如何在我的应用程序首次启动时制作类似的教程.如何在我的Android应用程序中实现这个透明视图(与屏幕对象交互)?

第一张图片 第二张图片

android android-layout

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

错误:使用较新的 Java 运行时版本编译 androidx/compose/compiler/plugins/kotlin/ComposeComponentRegistrar

我在尝试使用 AndroidX Compose 构建 Android 项目时遇到问题。我收到以下错误消息:

androidx/compose/compiler/plugins/kotlin/ComposeComponentRegistrar 已由更新版本的 Java 运行时(类文件版本 61.0)编译,此版本的 Java 运行时仅识别最高版本 55.0 的类文件

看来我当前的 Java 运行时环境 (JRE) 已过时,并且不支持 AndroidX Compose 库使用的类文件版本。

环境详情:

  • Java版本:JDK 17
  • AndroidX 撰写版本:1.4.5
  • 构建系统:Gradle 8.1
  • 科特林:1.8.20
./gradlew  -version | grep JVM
Run Code Online (Sandbox Code Playgroud)

输出:JVM:17.0.6(JetBrains sro 17.0.6+10-b802.4)

根据此处的注释,JDK 17 必须可以工作。

我想知道解决这个问题的最佳方法。我应该将 JDK 和 JRE 更新到更新版本,还是有办法使用与我当前 JDK 兼容的 AndroidX Compose 库版本?

任何帮助或建议将不胜感激。谢谢!

android gradle android-jetpack-compose

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

使用HttpClient将带有post方法的utf8内容发送到android中的服务器

这是我的示例代码,但是我使用了HttpProtocolParams.setContentCharset(params,"utf-8"); 我的代码但是当我发送utf-8数据时,我收到的只是"?????" 在服务器端(PHP代码)!问题是什么?

    HttpParams params = new BasicHttpParams();
    HttpProtocolParams.setVersion(params, HttpVersion.HTTP_1_1);
    HttpProtocolParams.setContentCharset(params, "utf-8");

    HttpClient httpclient = new DefaultHttpClient(params);

    httpclient.getParams().setParameter("http.protocol.content-charset", "UTF-8");
    HttpPost httppost = new HttpPost("URL_TO_SERVER");

    try {

        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(2);
        nameValuePairs.add(new BasicNameValuePair("uname", name.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("uemail", email.getText().toString()));
        nameValuePairs.add(new BasicNameValuePair("udesc", body.getText().toString()));
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

        HttpResponse hresponse = httpclient.execute(httppost);

        String response = new Scanner(hresponse.getEntity().getContent(), "UTF-8").useDelimiter("\\A").next();

        hresponse.getEntity().consumeContent();
        httpclient.getConnectionManager().shutdown();

        Log.d("WX", response.toString());
        Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();

    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
    } catch (IOException e) {
        // TODO Auto-generated catch block
    }
Run Code Online (Sandbox Code Playgroud)

java android http

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

如何在为actionbar使用自定义主题时更改actionbarsherlock菜单项字体?

当我使用默认的sherlock light主题时,我可以通过此方法更改字体(可以将其强制转换为TextView)

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getSupportMenuInflater().inflate(R.menu.main, menu);

    getLayoutInflater().setFactory(new LayoutInflater.Factory() {
        public View onCreateView(String name, Context context,
                AttributeSet attrs) {

            if (name.equalsIgnoreCase("com.android.internal.view.menu.IconMenuItemView")
                    || name.equalsIgnoreCase("TextView")) {
                try {
                    LayoutInflater li = LayoutInflater.from(context);
                    final View view = li.createView(name, null, attrs);
                    new Handler().post(new Runnable() {
                        public void run() {

                            // here I can change the font!
                            ((TextView)view).setTypeface(MY_CUSTOM_TYPE_FACE);
                        }
                    });
                    return view;
                } catch (InflateException e) {
                    // Handle any inflation exception here
                } catch (ClassNotFoundException e) {
                    // Handle any ClassNotFoundException …
Run Code Online (Sandbox Code Playgroud)

java android actionbarsherlock

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