片段中的 Intent 和 AlertDialog 不起作用
Intent and AlertDialog in fragment not working
我有一个片段有一些图片,你select一张图片然后按下一步去另一个class给select朋友。
当你没有 select 图片时,我想显示一个警告对话框,否则他们应该去 select 朋友。
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
}
}
});
即使我在文本视图中有文本,也会显示警告对话框。
去掉 * 并将其更改为:
Intent recipientsIntent = new Intent(v.getContext(),RecipientsActivity.class);
startActivity(recipientsIntent);
或
Intent recipientsIntent = new Intent(pictureFragment.this.getActivity(), RecipientsActivity.class.class);
startActivity(recipientsIntent);
之所以出现这个错误是因为pictureFragment.this是一个片段。它必须是 activity 才能工作,所以试试这个:
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);
}
}
Inside Fragments 使用 getActivity() 而不是这个。
试试这个;
Intent recipientsIntent = new Intent(getActivity(),RecipientsActivity.class);
startActivity(recipientsIntent);
我有一个片段有一些图片,你select一张图片然后按下一步去另一个class给select朋友。
当你没有 select 图片时,我想显示一个警告对话框,否则他们应该去 select 朋友。
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
}
}
});
即使我在文本视图中有文本,也会显示警告对话框。
去掉 * 并将其更改为:
Intent recipientsIntent = new Intent(v.getContext(),RecipientsActivity.class);
startActivity(recipientsIntent);
或
Intent recipientsIntent = new Intent(pictureFragment.this.getActivity(), RecipientsActivity.class.class);
startActivity(recipientsIntent);
之所以出现这个错误是因为pictureFragment.this是一个片段。它必须是 activity 才能工作,所以试试这个:
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);
}
}
Inside Fragments 使用 getActivity() 而不是这个。
试试这个;
Intent recipientsIntent = new Intent(getActivity(),RecipientsActivity.class);
startActivity(recipientsIntent);