在开发者控制台错误报告中,有时我会看到有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
我如何隐藏或删除某些listview分隔符?当然我可以隐藏所有分隔线
getListView().setDivider( null );
getListView().setDividerHeight(0);
Run Code Online (Sandbox Code Playgroud)
但是我需要在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) 这是我的第一个问题,我希望我做得对.
我需要处理一个Java EE项目,因此,在开始之前,我正在尝试做一些简单的事情,看看我能做到这一点.
我被Stateful Session Beans困住了.
这是一个问题:如何使用SFSB跟踪用户的会话?我看到的所有情况,"把"的最终SFSB到HttpSession的属性.但我不明白为什么!我的意思是,如果bean是STATEFUL,为什么我必须使用HttpSession来保存它?
EJB容器的任务不是将正确的SFSB返回给客户端吗?
我试过一个简单的计数器豆.在不使用会话的情况下,两个不同的浏览器具有相同的计数器bean(单击"增量"会更改它们的值).使用会话,我有两个不同的值,每个值对应每个浏览器(点击Firefox上的"增量",只添加一个到Firefox的bean).
但我的老师告诉SFSB保持"与客户的会话状态",那么为什么它不能在不使用HttpSession的情况下工作呢?
如果我理解正确的,不使用HttpSession中有SFSB同样用做它的SLSB呢?
我希望我的问题很明确,而且我的英语不是那么差!
编辑:我正在使用登录系统.一切顺利,完成登录后,我会看到一个显示用户数据的个人资料页面.但重新加载页面会使我的数据消失!我尝试在记录时添加HttpSession,但这样做会使数据在注销后保持不变!
我是IDEA插件开发的新手,我有一个我需要支持的插件.现在这个插件有一些设置.我想创建将在项目级别存储的设置,但我不知道如何执行此操作.
我创建了UI部分:
class SettingsPanel implements Configurable
Run Code Online (Sandbox Code Playgroud)
但我不明白如何在项目级别存储一些信息,并在我的行动中使用这些信息.我想在我的设置面板上显示项目文件夹结构并保存所选的文件夹名称.
无法理解如何浏览android模拟器SD卡.我正在使用IDEA,而不是Eclipse,并且不能使用Eclipse工具来实现此目的.
带有标签的我的应用有两个主题.在每个主题中,选项卡具有处于选定和未选定状态的不同图像.我如何按主题正确引用图像?
例如.我有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引用样式
我正在使用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时验证失败并出现错误.如何描述这个案例是否正确?
我有一个主要活动和一个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
我在我的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方法.
谢谢!
我有一个PreferenceActivity与我的应用程序的设置,我想刷新活动,如果一些偏好改变了.
例如,我有一个复选框,负责我的布局中的addtional选项卡,当选中复选框时,必须显示选项卡.为了捕获这个事件,我使用了OnSharedPreferenceChangeListener.但是这个监听器听每次点击这个复选框并且每次都做一些事情(你的逻辑),即使设置确实没有改变,每次点击也是如此.我想只在设置真的改变时刷新我的活动.如果之前是"OFF"并且现在变成"ON"在这种情况下我想要刷新,但是如果我改变OFF - ON - OFF我不想刷新.
如何捕捉真正的变化以及如何在活动中处理这个问题?
谢谢!