小编Geo*_*zov的帖子

Android系统.片段getActivity()有时会返回null

在开发者控制台错误报告中,有时我会看到有NPE问题的报告.我不明白我的代码有什么问题.在模拟器上,我的设备应用程序在没有forcecloses的情况下运行良好,但是当调用getActivity()方法时,一些用户在片段类中获得NullPointerException.

活动

pulic class MyActivity extends FragmentActivity{

    private ViewPager pager; 
    private TitlePageIndicator indicator;
    private TabsAdapter adapter;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        pager = (ViewPager) findViewById(R.id.pager);
        indicator = (TitlePageIndicator) findViewById(R.id.indicator);
        adapter = new TabsAdapter(getSupportFragmentManager(), false);

        adapter.addFragment(new FirstFragment());
        adapter.addFragment(new SecondFragment());
        indicator.notifyDataSetChanged();
        adapter.notifyDataSetChanged();

        // push first task
        FirstTask firstTask = new FirstTask(MyActivity.this);
        // set first fragment as listener
        firstTask.setTaskListener((TaskListener) adapter.getItem(0));
        firstTask.execute();
    }

    indicator.setOnPageChangeListener(new ViewPager.OnPageChangeListener()  {
        @Override
        public void onPageSelected(int position) {
            Fragment currentFragment = adapter.getItem(position);
            ((Taskable) currentFragment).executeTask();
        }

        @Override
        public void onPageScrolled(int …
Run Code Online (Sandbox Code Playgroud)

android nullpointerexception android-asynctask android-fragments android-activity

187
推荐指数
5
解决办法
14万
查看次数

Android系统.隐藏某个列表视图分隔符

我如何隐藏或删除某些listview分隔符?当然我可以隐藏所有分隔线

getListView().setDivider( null ); 
getListView().setDividerHeight(0); 
Run Code Online (Sandbox Code Playgroud)

但是我需要在listview中隐藏一两个分隔符.例如按位置.我正在使用自定义适配器列表数据.谢谢.

android listview hide separator divider

17
推荐指数
2
解决办法
8510
查看次数

自定义ListView和上下文菜单.怎么弄?

我的应用程序中有两个布局文件.我还有Activity扩展ListActivity.此活动的每个项目都会考虑item.xml布局文件.我在长按项目时尝试获取上下文菜单,但我没有看到它.

在我的活动中,我尝试registerForContextMenu(getListView())并覆盖两个方法

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Bundle bundle = this.getIntent().getExtras();
        registerForContextMenu(getListView());
        new PopulateAdapterTask().execute(ACTION_SELECT);   
     }

    @Override
        public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
            MenuInflater inflater = getMenuInflater();
            inflater.inflate(R.menu.context_menu, menu);
        }


        @Override
        public boolean onContextItemSelected(MenuItem item) {
            AdapterView.AdapterContextMenuInfo info;
            try {
                info = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();
            } catch (ClassCastException e) {
                return false;
            }
            long id = getListAdapter().getItemId(info.position);
            Log.d(TAG, "id = " + id);
            return true;
        }
Run Code Online (Sandbox Code Playgroud)

main.xml中

    <?xml version="1.0" encoding="utf-8"?>
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
         android:id="@android:id/tabhost"
         android:layout_width="fill_parent"
         android:layout_height="fill_parent">
    <LinearLayout
            android:orientation="vertical" …
Run Code Online (Sandbox Code Playgroud)

layout android listview contextmenu

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

使用有状态会话Bean来跟踪用户的会话

这是我的第一个问题,我希望我做得对.

我需要处理一个Java EE项目,因此,在开始之前,我正在尝试做一些简单的事情,看看我能做到这一点.

我被Stateful Session Beans困住了.

这是一个问题:如何使用SFSB跟踪用户的会话?我看到的所有情况,"把"的最终SFSBHttpSession的属性.但我不明白为什么!我的意思是,如果bean是STATEFUL,为什么我必须使用HttpSession来保存它?

EJB容器的任务不是将正确的SFSB返回给客户端吗?

我试过一个简单的计数器豆.在不使用会话的情况下,两个不同的浏览器具有相同的计数器bean(单击"增量"会更改它们的值).使用会话,我有两个不同的值,每个值对应每个浏览器(点击Firefox上的"增量",只添加一个到Firefox的bean).

但我的老师告诉SFSB保持"与客户的会话状态",那么为什么它不能在不使用HttpSession的情况下工作呢?

如果我理解正确的,不使用HttpSession中SFSB同样用做它的SLSB呢?

我希望我的问题很明确,而且我的英语不是那么差!

编辑:我正在使用登录系统.一切顺利,完成登录后,我会看到一个显示用户数据的个人资料页面.但重新加载页面会使我的数据消失!我尝试在记录时添加HttpSession,但这样做会使数据在注销后保持不变!

session ejb stateful javabeans httpsession

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

创建Intellij IDEA插件.存储插件设置

我是IDEA插件开发的新手,我有一个我需要支持的插件.现在这个插件有一些设置.我想创建将在项目级别存储的设置,但我不知道如何执行此操作.

我创建了UI部分:

class SettingsPanel implements Configurable
Run Code Online (Sandbox Code Playgroud)

但我不明白如何在项目级别存储一些信息,并在我的行动中使用这些信息.我想在我的设置面板上显示项目文件夹结构并保存所选的文件夹名称.

java intellij-idea intellij-plugin

11
推荐指数
1
解决办法
3771
查看次数

如何在没有Eclipse的情况下在Windows上浏览android模拟器SD?

无法理解如何浏览android模拟器SD卡.我正在使用IDEA,而不是Eclipse,并且不能使用Eclipse工具来实现此目的.

android android-emulator

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

如何从drawable引用到样式

带有标签的我的应用有两个主题.在每个主题中,选项卡具有处​​于选定和未选定状态的不同图像.我如何按主题正确引用图像?

例如.我有themes.xml

<?xml version="1.0" encoding="utf-8"?>

<style name="LightTheme" parent="@android:style/Theme.Light">
    <item name="tabShows">@drawable/ic_tab_shows_unselected_light</item>
    <item name="tabShowsSelected">@drawable/ic_tab_shows_selected_light</item>
    <item name="tabNews">@drawable/ic_tab_news_selected_light</item>
    <item name="tabNewsSelected">@drawable/ic_tab_news_unselected_light</item>
</style>

<style name="DarkTheme" parent="@android:style/Theme.Black">
    <item name="tabShows">@drawable/ic_tab_shows_unselected_dark</item>
    <item name="tabShowsSelected">@drawable/ic_tab_shows_selected_dark</item>
    <item name="tabNews">@drawable/ic_tab_news_selected_dark</item>
    <item name="tabNewsSelected">@drawable/ic_tab_news_unselected_dark</item>
   </style>
Run Code Online (Sandbox Code Playgroud)

我还有一个tab_shows.xml和tab_news.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item  android:state_selected="true" android:drawable="@drawable/ic_tab_shows_selected_light"/>
<item  android:state_selected="false" android:drawable="@drawable/ic_tab_shows_unselected_light" />
Run Code Online (Sandbox Code Playgroud)

如何根据当前主题在选择器中引用所需的图像?这不适合我

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item  android:state_selected="true" android:drawable="?tabShowsSelected"/>
<item  android:state_selected="false" android:drawable="?tabShows" />
Run Code Online (Sandbox Code Playgroud)

在布局文件中这是有效的,我的意思是通过?styleName引用样式

android themes styles image reference

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

XSD:具有相同元素名称的多个类型

我正在使用xsd进行xml验证.我需要用两种类型描述一个元素.

   <xsd:choice>
                            <xsd:element name="num" minOccurs="1" type="xsd:integer" fixed="0"/>
                            <xsd:element name="num" minOccurs="1" type="xsd:positiveInteger"/>
</xsd:choice>
Run Code Online (Sandbox Code Playgroud)

当我使用num = 0验证xml验证成功时,但是当我使用num value = 1或更高版本验证xml时验证失败并出现错误.如何描述这个案例是否正确?

xml xsd types

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

如何从偏好屏幕返回主要活动?

我有一个主要活动和一个preferenceActivity.在我的第一个活动中,我调用menu并通过调用startActivityForResult继续使用preferenceActivity.

                case R.id.settings:
                startActivityForResult(new Intent(this, SettingsActivity.class), LAUNCH_SETTINGS);
                return true;
Run Code Online (Sandbox Code Playgroud)

然后我更改我的设置并希望返回主要活动,并查看应用了新设置的主要活动.在onPause()方法中执行以下操作(因为我正确理解当按下后退按钮时会调用此方法,对吧?)

   @Override
     protected void onPause() {
         super.onPause();
         setResult(RESULT_OK, new Intent(this, MainActivity.class));
         finish();
     }
Run Code Online (Sandbox Code Playgroud)

关于主要活动

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == LAUNCH_SETTINGS) {
            if (resultCode == RESULT_OK) {
                new RefreshList().execute(ACTION_SELECT);
                Log.d(TAG, "On activity result");
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

但是我的acyncTask没有调用并且没有打印日志.我怎么能正确地做到这一点?谢谢!

settings android preferences android-preferences android-activity

5
推荐指数
1
解决办法
8684
查看次数

ORMLite和惰性集合的问题

我在我的android项目中使用ormlite.我有两节课

@DatabaseTable(tableName = "usershows")
public class UserShow {
    @DatabaseField(id = true)
    private Integer showId;

    @ForeignCollectionField(eager = false)
    private ForeignCollection<Episode> episodes;
    ...
}

@DatabaseTable(tableName = "episodes")
public class Episode {
    @DatabaseField(id = true)
    private Integer episodeId;

    @DatabaseField(foreign = true)
    private UserShow show;
    ...
}
Run Code Online (Sandbox Code Playgroud)

我正在保存我的UserShows对象,如示例中所示

UserShow show = new UserShow();
userShowDao.create(show);

for (Episode e: eps) {
    e.setShow(show);
    episodeDao.create(e); 
} 
Run Code Online (Sandbox Code Playgroud)

UserShow对象有一个外来的懒惰集合剧集,但是当我试图获取所有userShows时:

shows = userShowsDao().queryForAll();
Run Code Online (Sandbox Code Playgroud)

我正在使用剧集集合获取所有节目对象.为什么会这样?集合是懒惰的,我必须得到null或其他东西,但没有Episode对象的集合.如何让这个系列真的很懒?如果ORMLite能够在没有延迟集合的情况下获取对象并在真正需要时进行初始化,那么它可能会很酷.例如作为Hibernate.initialize方法.

谢谢!

collections android ormlite foreign-collection

5
推荐指数
1
解决办法
6827
查看次数

如果更改了首选项,则刷新活动

我有一个PreferenceActivity与我的应用程序的设置,我想刷新活动,如果一些偏好改变了.

例如,我有一个复选框,负责我的布局中的addtional选项卡,当选中复选框时,必须显示选项卡.为了捕获这个事件,我使用了OnSharedPreferenceChangeListener.但是这个监听器听每次点击这个复选框并且每次都做一些事情(你的逻辑),即使设置确实没有改变,每次点击也是如此.我想只在设置真的改变时刷新我的活动.如果之前是"OFF"并且现在变成"ON"在这种情况下我想要刷新,但是如果我改变OFF - ON - OFF我不想刷新.

如何捕捉真正的变化以及如何在活动中处理这个问题?

谢谢!

settings android refresh preferences android-activity

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