Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >运行应用程序时屏幕上的普通屏幕

运行应用程序时屏幕上的普通屏幕
EN

Stack Overflow用户
提问于 2016-04-01 03:41:34
回答 1查看 52关注 0票数 0

我正在制作一个拨号应用程序,我遵循这个指南简单拨号应用,唯一的区别是我使用的是片段(带有支持库),而不是活动方法。当我尝试运行该应用程序时,它编译得很好,但显示了一个普通的白屏幕。这些片段是没有正确实现,还是我进入了一个无限循环?如有任何帮助,敬请提前感谢!

这是我的MainActivity.java:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.heroicjokester.android.haid;

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;


public class DialerActivity extends FragmentActivity {

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

    FragmentManager fm = getSupportFragmentManager();
    Fragment fragment = new DialerFragment();

        if(fragment == null){
            fragment = new DialerFragment();
            fm.beginTransaction()
                    .add(R.id.fragment_container,fragment)
                    .commit();
        }
}
}

我的activity_dialer.xml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragment_container"
android:layout_width="match_parent"
android:layout_height="wrap_content"
>

</FrameLayout>

Fragment_dialer.xml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
          android:orientation="vertical"
          android:layout_width="match_parent"
          android:layout_height="match_parent">

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:text="@string/app_name"
    android:gravity="center"
    android:textAppearance="?android:attr/textAppearanceLarge"/>

<EditText
    android:id="@+id/input_pno"
    android:inputType="number"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="@string/input_pno_hint"
    />

<Button
    android:id="@+id/dial_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/dial_button"
    android:layout_gravity="center_horizontal"/>



</LinearLayout>

DialerFragment.java:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 package com.heroicjokester.android.haid;

 import android.Manifest;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.net.Uri;
 import android.os.Bundle;
 import android.support.v4.app.Fragment;
 import android.util.Log;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.EditText;
 import android.widget.Toast;;
 import android.support.v4.content.ContextCompat;

/**
  * Created by Ripcord on 01-Apr-16.
  */
 public class DialerFragment extends Fragment {
 private EditText mPhoneField;
 private Button mDialButton;

//Requesting Permissions using Runtime Permissions.
final private int REQUEST_CODE_ASK_PERMISSIONS=0;

private void InitiateCall(){
    int hasCallPermission =          ContextCompat.checkSelfPermission(getActivity(),Manifest.permission.READ_PHONE_STATE);
    if (hasCallPermission != PackageManager.PERMISSION_GRANTED){
        requestPermissions(new String[]{Manifest.permission.READ_PHONE_STATE},
                REQUEST_CODE_ASK_PERMISSIONS);
        return;
    }
    InitiateCall();
}

@Override
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults ){
   switch (requestCode){
       case REQUEST_CODE_ASK_PERMISSIONS:
           if (grantResults[0]==PackageManager.PERMISSION_GRANTED){
               //YAY! PERMISSION GRANTED
               InitiateCall();
           }else{
               //GD! PERMISSION DENIED
               Toast.makeText(getActivity(), R.string.permission_denied, Toast.LENGTH_SHORT).show();
           }
            break;
       default:
           super.onRequestPermissionsResult(requestCode, permissions, grantResults);

   }
}



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

}

@Override
public View onCreateView(LayoutInflater inflater,ViewGroup container,Bundle savedInstanceState){
    View v=inflater.inflate(R.layout.fragment_dialer,container,false);

    mPhoneField=(EditText) v.findViewById(R.id.input_pno);
    mDialButton=(Button) v.findViewById(R.id.dial_button);

    mDialButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){
            try{
                if (mPhoneField != null && (mPhoneField.getText().length()==10||mPhoneField.getText().length()==11)){
                    startActivity(new Intent(Intent.ACTION_CALL, Uri.parse("tel:" + mPhoneField.getText())));
                }
                else if(mPhoneField != null && mPhoneField.getText().length()==0){
                    Toast.makeText(getActivity(),R.string.no_number_toast,Toast.LENGTH_SHORT).show();
                }
                else if(mPhoneField !=null && mPhoneField.getText().length()<10){
                    Toast.makeText(getActivity(),R.string.wrong_number_toast,Toast.LENGTH_SHORT).show();
                }
            } catch (Exception e){
                Log.e("DialerAppActivity","error: " + e.getMessage(),e);//Runtime error will be logged
            }
        }
    });


    return v;
}

}

最后,我的日志文件:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
 04-01 16:55:56.067 2372-2372/? I/art: Not late-enabling -Xcheck:jni (already on)
 04-01 16:55:56.143 2372-2372/com.heroicjokester.android.haid W/System: ClassLoader referenced unknown path: /data/app/com.heroicjokester.android.haid-1/lib/x86
 04-01 16:55:56.173 2372-2385/com.heroicjokester.android.haid D/OpenGLRenderer: Use EGL_SWAP_BEHAVIOR_PRESERVED: true
 04-01 16:55:56.279 2372-2385/com.heroicjokester.android.haid I/OpenGLRenderer: Initialized EGL, version 1.4
 04-01 16:55:56.564 2372-2385/com.heroicjokester.android.haid W/EGL_emulation: eglSurfaceAttrib not implemented
 04-01 16:55:56.564 2372-2385/com.heroicjokester.android.haid W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0xabfebbe0, error=EGL_SUCCESS
 04-01 16:55:57.263 2372-2372/com.heroicjokester.android.haid I/Choreographer: Skipped 33 frames!  The application may be doing too much work on its main thread.
 04-01 17:01:31.638 2372-2378/com.heroicjokester.android.haid W/art: Suspending all threads took: 9.827ms
 04-01 17:06:24.378 2372-2378/com.heroicjokester.android.haid W/art: Suspending all threads took: 15.026ms
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-04-01 04:49:08

if(fragment == null)从不返回true,因此您的片段事务永远不会被调用。我假设您正在尝试确保在更改方向时不替换片段,在这种情况下,您应该首先尝试查找片段,如果没有找到,则创建一个新的片段:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
private static final String FRAGMENT_TAG_DIALER = "fragment:dialer";

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

    FragmentManager fm = getSupportFragmentManager();
    Fragment fragment = (DialerFragment) fm.findFragmentByTag(FRAGMENT_TAG_DIALER);

    if(fragment == null){
        fragment = new DialerFragment();
        fm.beginTransaction()
                .add(R.id.fragment_container, fragment, FRAGMENT_TAG_DIALER)
                .commit();
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36355451

复制
相关文章
访问令牌JWT
By reference token(透明令牌),随机生成的字符串标识符,无法简单猜测授权服务器如何颁 发和存储资源服务器必须通过后端渠道,发送回OAuth2授权服务器的令牌检查端点,才能校验令牌 是否有效,并获取claims/scopes等额外信息
乐心湖
2020/08/02
1.7K0
Docker镜像详谈(3): 镜像内容存放在哪里?
据说重要的事情要说三遍,那我再表述一下个人观点:Docker 镜像是 Docker 的灵魂所在。
Henry Zhang
2019/04/12
8.6K0
Docker镜像详谈(3): 镜像内容存放在哪里?
2019年CIO应该把钱花在哪里?这个调查告诉你
新的一年,许多CIO都在考虑把预算放在哪个方向,对哪些领域的预算增加一些,对哪些领域的投资减少一些。
人称T客
2019/05/08
4870
2019年CIO应该把钱花在哪里?这个调查告诉你
这家人工智能公司告诉你应该把钱投向哪里
在2000年代中期的某个时候,对冲基金所有者想出了一个点子。金融市场是受新闻影响的—所以如果你能彻底地理解新闻,而且能非常迅速,那你就能抢在市场变化前面。利用人工智能技术,他们设计了一种软件,能实时分析爆炸性新闻,评估新闻的意义,并且能在数秒内根据上述分析进行交易。 就像在对冲基金领域的很多事情一样,这种人工智能技术仍然只是亿万富豪和专业投资者的专属。但是Amareos,一家香港创业企业,正想法设法将这项技术带给普通的投资人。 测量世界的温度 “我们尽力将大数据技术民主化,”Philippe EI-As
点滴科技资讯
2018/04/28
2.7K0
这家人工智能公司告诉你应该把钱投向哪里
XXL-JOB访问令牌(AccessToken)设置
为提升系统安全性,调度中心和执行器进行安全性校验,双方AccessToken匹配才允许通讯;
Li_XiaoJin
2022/12/28
20.8K0
XXL-JOB访问令牌(AccessToken)设置
访问令牌过期后,如何自动续期?
JWT是JSON Web Token的缩写,是为了在网络应用环境间传递声明而执行的- -种基于JSON的开放标准((RFC 7519)。JWT本身没有定义任何技术实现,它只是定义了一种基于Token的会话管理的规则,涵盖Token需要包含的标准内容和Token的生成过程,特别适用于分布式站点的单点登录(SSO) 场景。
Tinywan
2023/03/08
2.6K0
访问令牌过期后,如何自动续期?
C/C++ 实现提升访问令牌权限
在我们编程实现一些系统操作的时候,往往要求我们执行操作的进程拥有足够的权限方可成功操作。比如,我们使用 ExitWindows 函数实现关机或重启操作的时候,就要求我们的进程要有 SE_SHUTDOWN_NAME 的权限,否则,会忽视不执行操作。这时,我们唯一能够做的,就是按照要求,提升我们进程的权限。
微软技术分享
2022/12/28
7900
怎样把DataGrid存放在ViewState中的无用数据卡掉
作者:无间道的博客http://www.cnblogs.com/wangsaokui/article网络
Java架构师必看
2021/03/22
5150
JWT应该保存在哪里?
最近几年的项目我都用JWT作为身份验证令牌。我一直有一个疑问:服务端发放给浏览器的JWT到底应该存储在哪里?这里只讨论浏览器的场景,在这个场景里有三种选择。
码农小胖哥
2021/10/19
2.2K0
Apache APISIX 默认访问令牌漏洞 (CVE-2020-13945)
百度:API网关,软件术语,两个相互独立的局域网之间通过路由器进行通信,中间的路由被称之为网关。
网e渗透安全部
2022/06/15
2.9K0
Apache APISIX 默认访问令牌漏洞 (CVE-2020-13945)
Groovy 我的Class在哪里
通过将getLocation方法添加到Class类,Groovy 2.5.0可以获得Class文件的位置。 如果Class是JDK的一部分,则返回的位置是null,否则是我们使用Class文件获取JAR文件或源文件(如果可用)的位置。
白石
2019/08/23
6180
springcloud中feign的@FeignClient应该写在哪里?
最近项目组拿了友商的springcloud alibaba项目来进行改造,在翻阅他们的代码时候,发现他们把@FeignClient写在服务提供方的API上,他们这样的写法成功的引起我的注意,于是抱着好学的心态请教友商的开发人员,于是一篇水文就这么诞生了
lyb-geek
2020/11/28
2.2K0
springcloud中feign的@FeignClient应该写在哪里?
计算机网络:随机访问介质访问控制之令牌传递协议
在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点都不能使用信道。典型的轮询访问介质访问控制协议是令牌传递协议,它主要用在令牌环局域网中。
timerring
2022/11/18
1K0
我能力的边界在哪里?
导读:能力的边界绝不是自己一出道就给自己画的圆,而是在实践中通过不断地挑战未知探索出来的。那么,这个边界就不可能是个光滑的界线,更像是一个个触角延伸在四方,不断地吸取养分,从而作用于自己的核心能力之上。
用户1756920
2018/07/23
6620
我能力的边界在哪里?
请问怎么把我的一个长网址设置到域名访问?
比如:我的网站是https://www.bw3785.com/pjie 我注册了腾讯的bw5188.com 我希望以后别人输入bw5188.com就可以访问我的第一个长网址,该如何实现? 这个问题很头疼,在域名解析里面找了半天没找到呢 比如:我的网站是https://www.bw3785.com/pjie 我注册了腾讯的bw5188.com 我希望以后别人输入bw5188.com就可以访问我的第一个长网址,该如何实现? 这个问题很头疼,在域名解析里面找了半天没找到呢
用户6354929
2019/10/02
3.7K0
Python 分析天气,告诉你中秋应该去哪里
中秋佳节将近,不知道各位小伙伴儿有没有想好去哪里玩呢。不过说实在的,每到节假日,到处都是人山人海,那句“我动也不能动”,还不时的出现在我的耳畔呢。
1480
2019/09/10
4320
Python 分析天气,告诉你中秋应该去哪里
Python 分析天气,告诉你中秋应该去哪里
中秋佳节将近,不知道各位小伙伴儿有没有想好去哪里玩呢。不过说实在的,每到节假日,到处都是人山人海,那句“我动也不能动”,还不时的出现在我的耳畔呢。
周萝卜
2020/05/22
3770
授权服务是如何颁发授权码和访问令牌的?
授权服务如何生成访问令牌? 访问令牌过期了而用户又不在场的情况下,又如何重新生成访问令牌?
JavaEdge
2021/02/23
2.8K0
授权服务是如何颁发授权码和访问令牌的?
我靠(call) ,我的未来(Future)在哪里???
大家好,我是 cxuan,之前一直在分享操作系统相关的文章,兜兜转转回到了 Java 文章分享,本篇文章是读者投稿,来和你一起聊一聊 Future ~
cxuan
2020/08/02
5290
我说我不会算法,阿里把我挂了。[通俗易懂]
工作已经有一段时间了,有的时候会跟同事们打趣:“如果你让我现在去手写一个快速排序,我怕是真的写不出来”。
全栈程序员站长
2022/08/30
2830
我说我不会算法,阿里把我挂了。[通俗易懂]

相似问题

mapbox访问令牌-我应该把它放在哪里?

10

我应该把许可证文件存放在哪里?

22

我应该把用户上传的照片存放在哪里?

11

我的Git个人访问令牌存放在哪里?

156

API访问令牌存放在哪里?

131
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文