我的xml代码中有一系列嵌套的线性布局.我希望父母的第一个孩子(也是一个线性布局)成为焦点.如果我将focusable设置为true,它就会这样做.我还想把焦点传递给这个布局的子节点(为了调用它们的状态列表).然而,即使它们被设定为可聚焦,它也不会将它的任何焦点传递给它的孩子.任何想法如何做到这一点?谢谢
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:weightSum="1"
android:layout_height="wrap_content"
android:background="@drawable/resultpage_statelist"
android:focusable="true"
android:clickable="true">
<TextView
android:text="TextView"
android:layout_height="wrap_content"
android:paddingTop="5dip"
android:paddingBottom="5dip"
android:paddingLeft="10dip"
android:layout_width="fill_parent"
android:layout_weight="0.8"
android:id="@+id/tag_row_text"
android:textSize="16dip"
android:padding="10dip"
android:textColor="@drawable/resultpage_grey_text_statelist"
android:background="#00000000"
android:focusable="true">
</TextView>
<ImageView
android:layout_height="wrap_content"
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_gravity="right|center_vertical"
android:src="@drawable/arrow_statelist"
android:layout_marginRight="10dip"
android:background="#00000000"
android:focusable="true">
</ImageView>
</LinearLayout>
<LinearLayout
android:layout_width="fill_parent"
android:background="#6E6E6E"
android:layout_height="1dip">
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud) 根据Android文档,如果我不希望我的ShareActionProvider持久保存我应该调用的共享历史记录
mShareActionProvider.setShareHistoryFileName(null)
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时,我在选择共享选项时遇到以下崩溃:
11-15 10:06:34.848: E/AndroidRuntime(22461): java.lang.IllegalStateException: No preceding call to #readHistoricalData
11-15 10:06:34.848: E/AndroidRuntime(22461): at android.widget.ActivityChooserModel.persistHistoricalDataIfNeeded(ActivityChooserModel.java:573)
11-15 10:06:34.848: E/AndroidRuntime(22461): at android.widget.ActivityChooserModel.addHisoricalRecord(ActivityChooserModel.java:743)
11-15 10:06:34.848: E/AndroidRuntime(22461): at android.widget.ActivityChooserModel.chooseActivity(ActivityChooserModel.java:491)
11-15 10:06:34.848: E/AndroidRuntime(22461): at android.widget.ActivityChooserView$Callbacks.onItemClick(ActivityChooserView.java:547)
Run Code Online (Sandbox Code Playgroud)
以下是设置ShareActionProvider的代码:
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.article_pager_menu, menu);
// mShareActionProvider is a field in the Activity
mShareActionProvider = (ShareActionProvider) menu.findItem(R.id.menu_share)
.getActionProvider();
mShareActionProvider
.setShareHistoryFileName(null);
Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
shareIntent.setType("text/plain");
mShareActionProvider.setShareIntent(shareIntent);
mShareActionProvider.onCreateActionView();
return true;
}
Run Code Online (Sandbox Code Playgroud)
我有什么想法可以解决这个问题?
android android-intent android-actionbar shareactionprovider
我有一个HttpsURLConnection的问题,我似乎无法解决.基本上,我正在向服务器发送一些信息,如果其中一些数据错误,服务器会向我发送500响应代码.但是,它也会在响应中发送一条消息,告诉我哪个数据位错误.问题是当我读取它时消息总是空的.我认为这是因为在读取流之前总会抛出一个filenotfound异常.我对吗?我也试过读错误流,但这总是空的.这是一个片段:
conn = (HttpsURLConnection) connectURL.openConnection();
conn.setDoOutput(true);
conn.setConnectTimeout(30000);
conn.setReadTimeout(30000);
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Length",
Integer.toString(outString.getBytes().length));
DataOutputStream wr = new DataOutputStream(conn
.getOutputStream());
wr.write(outString.getBytes());
wr.flush();
wr.close();
if(conn.getResponseCode>400{
String response = getErrorResponse(conn);
public String getErrorResponse(HttpsURLConnection conn) {
Log.i(TAG, "in getResponse");
InputStream is = null;
try {
//is = conn.getInputStream();
is = conn.getErrorStream();
// scoop up the reply from the server
int ch;
StringBuffer sb = new StringBuffer();
while ((ch = is.read()) != -1) {
sb.append((char) ch);
}
//System.out.println(sb.toString());
return sb.toString();
// return conferenceId;
}
catch (Exception e){ …Run Code Online (Sandbox Code Playgroud)