gpt4 book ai didi

java - 如果变量没有数据尝试另一个?

转载 作者:行者123 更新时间:2023-12-01 13:49:04 24 4
gpt4 key购买 nike

我正在尝试在 android 中的向导结束时创建一个数据库供给器。

将会有多种不同类型的标题,但现在我只能调用一种,因为我会得到一个空指针异常。

String title = mWizardModel.findByKey("Surf:Post Title").getData().getString(Page.SIMPLE_DATA_KEY);

我需要做的是:

String title = mWizardModel.findByKey("Surf:Post Title" if no data try = "Snow:Post Title" = if no data try "Skate:Post Title").getData().getString(Page.SIMPLE_DATA_KEY);

但是我不确定如何真正实现这个工作,我尝试了很多不同的 if null 语句,但它们似乎都不能满足我的需要,因为我的数据库行是这样创建的。

 String title = mWizardModel.findByKey("Surf:Post Title").getData().getString(Page.SIMPLE_DATA_KEY);
String maincat = mWizardModel.findByKey("Main Category").getData().getString(Page.SIMPLE_DATA_KEY);
String price = mWizardModel.findByKey("Surf:Price").getData().getString(Page.SIMPLE_DATA_KEY);


myDb.insertRow(title, price, maincat);

这是 onClick 中的完整代码

 mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

if (mPager.getCurrentItem() == mCurrentPageSequence.size()) {

String title = mWizardModel.findByKey("Surf:Post Title").getData().getString(Page.SIMPLE_DATA_KEY);
String maincat = mWizardModel.findByKey("Main Category").getData().getString(Page.SIMPLE_DATA_KEY);
String price = mWizardModel.findByKey("Surf:Price").getData().getString(Page.SIMPLE_DATA_KEY);


myDb.insertRow(title, price, maincat);

DialogFragment dg = new DialogFragment() {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setMessage(R.string.submit_confirm_message)
.setPositiveButton(R.string.submit_confirm_button, null)
.setNegativeButton(android.R.string.cancel, null)
.create();
}

};
dg.show(getSupportFragmentManager(), "place_order_dialog");
} else {
if (mEditingAfterReview) {
mPager.setCurrentItem(mPagerAdapter.getCount() - 1);
} else {
mPager.setCurrentItem(mPager.getCurrentItem() + 1);
}
}

}
});

编辑:情节扭曲!此代码仅返回其序列中的最后一次尝试(检查我的评论)

mNextButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {

if (mPager.getCurrentItem() == mCurrentPageSequence.size()) {

//开始序列

                Bundle t = mWizardModel.findByKey("Surf:Post Title").getData();
if ( t != null )
{
t = mWizardModel.findByKey("Snow:Post Title").getData();
}
if ( t != null )
{

//只返回这个Key! (“Skate:帖子标题”)没有其他人。

                    t = mWizardModel.findByKey("Skate:Post Title").getData();
}
String title = t.getString(Page.SIMPLE_DATA_KEY);


Bundle p = mWizardModel.findByKey("Surf:Price").getData();
if ( p != null )
{
p = mWizardModel.findByKey("Snow:Price").getData();
}
if ( p != null )
{
p = mWizardModel.findByKey("Skate:Price").getData();
}
String price = p.getString(Page.SIMPLE_DATA_KEY);

String maincat = mWizardModel.findByKey("Main Category").getData().getString(Page.SIMPLE_DATA_KEY);


myDb.insertRow(title, price, maincat);

DialogFragment dg = new DialogFragment() {
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
return new AlertDialog.Builder(getActivity())
.setMessage(R.string.submit_confirm_message)
.setPositiveButton(R.string.submit_confirm_button, null)
.setNegativeButton(android.R.string.cancel, null)
.create();
}

};
dg.show(getSupportFragmentManager(), "place_order_dialog");
} else {
if (mEditingAfterReview) {
mPager.setCurrentItem(mPagerAdapter.getCount() - 1);
} else {
mPager.setCurrentItem(mPager.getCurrentItem() + 1);
}
}

}
});

最佳答案

如果将其分成单独的行,会更容易(并且可能有效):

/* not sure what the type is, so let's go with Data... */
Data d = mWizardModel.findByKey("Surf:Post Title").getData();
if ( d == null )
{
d = mWizardModel.findByKey("Surf:Post Title").getData();
}
if ( d == null )
{
//...
}
String title = d.getString(Page.SIMPLE_DATA_KEY);

关于java - 如果变量没有数据尝试另一个?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20110316/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com