意图和AlertDialog在片段不能正常工作
我有一个片段,有一些图片,您选择一张图片,然后按下一步转到另一个类来选择朋友。意图和AlertDialog在片段不能正常工作
当您不选择图片时,我想显示一个警告对话框,否则他们应该去选择朋友。
protected TextView mMessage;
mMessage = (TextView) view.findViewById(R.id.Text);
final String userMessage = mMessage.getText().toString();
mNext = (Button) view.findViewById(R.id.nextButton);
mNext.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (userMessage.equals("") || userMessage.equals(null)) {
AlertDialog.Builder builder = new AlertDialog.Builder(messageFragment.this.getActivity());
builder.setTitle("oops");
builder.setMessage("Make sure you take a pic");
builder.setPositiveButton(android.R.string.ok, null);
AlertDialog dialog = builder.create();
dialog.show();
} else {
//blahh
}
}
});
即使在文本视图中有文本时,警报对话框也会显示。
之所以错误出现是因为pictureFragment.this是一个片段。它必须是一个活动才能工作,所以试试这个:
private TextView mMessage;
mMessage = (TextView) view.findViewById(R.id.text);
//On Button Click...
@Override
public void onClick(View v) {
String userMessage = mMessage.getText().toString();
if (userMessage.equals(null) || userMessage.equals("") || userMessage.isEmpty()) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle("oops");
builder.setMessage("Make sure select a pic");
builder.setPositiveButton(android.R.string.ok, null);
AlertDialog dialog = builder.create();
dialog.show();
} else {
Intent recipientsIntent = new Intent (getActivity(), RecipientsActivity.class);
startActivity(recipientsIntent);
}
}
取出*,并通过改变这样的:
Intent recipientsIntent = new Intent(v.getContext(),RecipientsActivity.class);
startActivity(recipientsIntent);
或
Intent recipientsIntent = new Intent(pictureFragment.this.getActivity(), RecipientsActivity.class.class);
startActivity(recipientsIntent);
是的,我做了,它仍然不工作 – smithyy
我编辑答案 – amaiaeskisabel
它显示方法mNext =(按钮)视图中的错误.findViewById(R.id.nextButton);说它无法访问 – smithyy
Inside Fragments use getActivity()not this。
试试这个;
Intent recipientsIntent = new Intent(getActivity(),RecipientsActivity.class);
startActivity(recipientsIntent);
它在方法中显示错误mNext =(Button)view.findViewById(R.id.nextButton);称其无法访问 – smithyy
有没有可能为您提供完整的片段代码? – Want2bExpert
你能告诉我们你得到了什么错误。 – adelphus
(pictureFragment.this); * //显示错误*(this,RecipientsActivity.class)*; //显示错误,在android studio中以红色加下划线 – smithyy
当您将鼠标悬停在红线上时,Android Studio会显示什么信息? – adelphus