有没有办法让它ViewPager不是水平滚动,而是垂直滚动?!
这个DialogFragment实现导致了
IllegalStateException("你不能设置Dialog的OnCancelListener或OnDismissListener")
.为什么?解?
public class OkCThreadDialog1 extends DialogFragment{
DialogInterface.OnCancelListener onCancelListener;
public OkCThreadDialog1(){
}
public static OkCThreadDialog1 newInstance(String title, String message) {
OkCThreadDialog1 frag = new OkCThreadDialog1();
Bundle args = new Bundle();
args.putString("title", title);
args.putString("message", message);
frag.setArguments(args);
return frag;
}
public Dialog onCreateDialog(Bundle savedInstanceState){
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder .setTitle(getArguments().getString("title"))
.setMessage(getArguments().getString("message"))
.setOnCancelListener(onCancelListener)
.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}})
.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
getDialog().cancel();
}});
return builder.create();
} …Run Code Online (Sandbox Code Playgroud) 我以TableRow layout_weight编程方式设置时遇到问题.以下代码是TableLayout膨胀的table_body元素:
<TableLayout
android:layout_width="match_parent"
android:layout_height="0px"
android:layout_weight="1"
android:weightSum="1">
<TableLayout>
Run Code Online (Sandbox Code Playgroud)
我想在TableLayout..中只显示10行,为此我用编程方式添加TableRow元素,这是代码:
while(i<10){
TableRow row = (TableRow) ((Activity) context).getLayoutInflater().
inflate(R.layout.body_row, table_body, false);
TableRow.LayoutParams row_params =
new TableRow.LayoutParams(LayoutParams.MATCH_PARENT, 0, 0.1f);
table_body.addView(row, row_params);
i++;
}
Run Code Online (Sandbox Code Playgroud)
body_row.xml有这段代码:
<TableRow>
<TextView
android:text="row1"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</TableRow>
Run Code Online (Sandbox Code Playgroud)
这个代码TableLayout没有划分为10个相等的空格(正如我想要的那样),但是行只用最后一行结尾和TableLayout结尾之间的空格结果包装它们的内容.我做错了什么?谢谢!!
我正在尝试使用Intent发送sdcard文件夹中包含的文件(.log文件).这是代码:
public void sendMail() {
Intent intent = new Intent(Intent.ACTION_SEND_MULTIPLE);
intent.setType("text/plain");
intent.putExtra(Intent.EXTRA_EMAIL, new String[] {"name.surname@gmail.com"});
intent.putExtra(Intent.EXTRA_SUBJECT, "Log files");
intent.putExtra(Intent.EXTRA_TEXT, "body");
//has to be an ArrayList
ArrayList<Uri> uris = new ArrayList<Uri>();
//convert from paths to Android friendly Parcelable Uri's
if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())){
File root = Environment.getExternalStorageDirectory();
File logfolder = new File(root, "log");
for (String file : logfolder.list()){
Uri u = Uri.parse(file);
uris.add(u);
}
intent.putParcelableArrayListExtra(Intent.EXTRA_STREAM, uris);
startActivity(Intent.createChooser(intent, new String("Send mail...")));
}
}
Run Code Online (Sandbox Code Playgroud)
我从菜单中选择Gmail.Gmail打开后,会正确显示包含收件人,主题,文本和附件的邮件.邮件被发送没有错误,但我收到状态栏通知,说"无法显示附件"!事实上,收件人正确收到电子邮件但没有附件.我无法弄清问题是什么.为什么附件没有被发现?请帮我!!
我有一个从线程执行的AsyncTask .在onPreExecute()方法中我想改变一些TextView但我得到以下错误(回顾):
05-07 11:53:02.039: E/AndroidRuntime(7062): FATAL EXCEPTION: processBarcodeThread
05-07 11:53:02.039: E/AndroidRuntime(7062): android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
.....
05-07 11:53:02.039: E/AndroidRuntime(7062): at android.widget.TextView.setText(TextView.java:2573)
05-07 11:53:02.039: E/AndroidRuntime(7062): at it.mbm.droid.activity.fragment.LabelAnagFragment$ReadFromServerTask.onPreExecute(LabelAnagFragment.java:301)
05-07 11:53:02.039: E/AndroidRuntime(7062): at android.os.AsyncTask.execute(AsyncTask.java:391)
Run Code Online (Sandbox Code Playgroud)
这意味着onPreExecute()不会在UI线程上执行,但根据Android文档:
onPreExecute(),在执行任务之前在UI线程上调用.此步骤通常用于设置任务,例如通过在用户界面中显示进度条.
那么,我在哪里做错了?
我有3个活动:A,B,C.
我希望活动的工作方式如下:
一个startActivityForResult B; B可以启动C或将结果发送给A; C可以返回B或将结果发送给A.
当B将结果发送给A时,必须从Backstack中删除B. 当C将结果发送到A时,必须从Backstack中删除B和C.
我无法从C向A发送结果.这意味着A必须重新发送(未重新发送),并且必须调用onActivityResult()来处理结果:
我已尝试使用此代码,但重新创建了A并且未调用onActivityResult()!
public class C extends Activity{
sendResultToA(){
Intent i = new Intent(getActivity(), A.class);
i.putExtra("dataBean", dataBean);
i.putExtra("args", "save");
i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
getActivity().setResult(Activity.RESULT_OK, i);
startActivity(i);
}
}
Run Code Online (Sandbox Code Playgroud)
有什么想法可以解决这个问题?谢谢