小编Sla*_*lay的帖子

getBooleanExtra() 仅使用默认参数而不是 putExtra() 传递的参数

这是代码。在这部分,answerIsTrue变量应该被初始化为 true,它正确地做(我调试和检查)并且正确地也被传递到 putExtra()(再次,我调试和检查)。

mCheatButton.setOnClickListener(new View.OnClickListener(){
        public void onClick(View v){
            Intent i = new Intent(QuizActivity.this, CheatActivity.class);
            boolean answerIsTrue = mQuestionBank[mCurrentIndex].isTrueQuestion();
            i.putExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE, answerIsTrue);
            startActivity(i);
        }
    });
Run Code Online (Sandbox Code Playgroud)

但是来到一个不同的类,mAnswerIsTrue尽管 putExtra() 传递的参数为真,但变量被分配为 false(可能是由于默认参数)。这是代码。

mAnswerIsTrue = getIntent().getBooleanExtra(EXTRA_ANSWER_IS_TRUE, false);
Run Code Online (Sandbox Code Playgroud)

我也调试了这条线,它确实被分配为 false。可能有什么问题?

这是完整的CheatActivity课程:

public class CheatActivity extends Activity {
public static final String EXTRA_ANSWER_IS_TRUE = "com.bignerdranch.android.geoquiz.answer_is_true";
private Button mShowAnswerButton;
private boolean mAnswerIsTrue;
private TextView mAnswerTextView;
@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_cheat);
    mAnswerIsTrue = getIntent().getBooleanExtra(CheatActivity.EXTRA_ANSWER_IS_TRUE, false);
    mAnswerTextView = (TextView)findViewById(R.id.answerTextView);
    mShowAnswerButton = …
Run Code Online (Sandbox Code Playgroud)

android android-intent android-activity

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

"自动更改意义于c ++ 11"

#include<iostream>
#include<string>
#include<iterator>
using namespace std;
int main()
{
    string a("hello world");
    for(auto it = a.begin(); it != a.end() && !isspace(*it); it++ )
    {
        *it = toupper(*it);
    }
    cout<<a;
}
Run Code Online (Sandbox Code Playgroud)

我得到了两个错误.一个是如上所述,"自动更改意味着在c ++ 11中",另一个是"!=运算符未定义".从来没有遇到过这个问题.

我只使用了自动运算符,因为本书建议.

我是初学者,大约2个月后回到学习.遇到困难.

c++ iterator operators c++11

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

"不匹配运营商+"

我是初学者,2个月后回到编程.几乎忘记了一切.我刚刚尝试编译的代码消除了迭代器中向量的后半部分,如果我想要的字符在前半部分找到.

这是代码:

#include<iostream>
#include<string>
#include<vector>
using namespace std;
int main()
{
    vector<string> v;
    string s("hello world");
    char sought = 'e';
    v.push_back(s);
    auto mid = (v.begin() + v.end())/2;
    if (sought<*mid)
    {
        end = mid;
    }
    cout<<*v;

}
Run Code Online (Sandbox Code Playgroud)

请告诉我我的错误是什么.

还能忘记编程吗?此外,一旦精通,这个概念会永远存在,还是需要不断的练习和阅读?

c++ iterator vector operators c++11

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

错误:没有匹配函数来调用'begin(const unsigned int&)'|

#include <iostream>

using namespace std;

int main()
{
    constexpr size_t b = 10;
    int arr[b];
    for ( int i = 0; i<b; i++)
    {
        arr[i] = i;
    }
    for ( int x : b)
    {
        cout<<x;
    }
}
Run Code Online (Sandbox Code Playgroud)

代码显示在上面.为什么我不能使用for循环范围打印数组的内容?当我尝试时,它给我一个错误说错误:没有匹配函数调用'begin(const unsigned int&)'|

c++ arrays c++11

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