我想为包含一些按钮的LinearLayout定义百分比宽度(70%),以便我可以将其居中,以便子按钮可以fill_parent.这是一张显示我的意思的图片:

我目前的布局如下:
<?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="fill_parent"
android:id="@+id/layoutContainer" android:orientation="vertical">
<LinearLayout android:layout_width="fill_parent"
android:id="@+id/barContainer" android:orientation="horizontal"
android:layout_height="40dp" android:background="@drawable/titlebackground">
<ImageView android:id="@+id/barLogo" android:src="@drawable/titlelogo"
android:layout_gravity="center_vertical" android:adjustViewBounds="true"
android:layout_height="25dp" android:layout_width="wrap_content"
android:scaleType="fitXY" android:paddingLeft="5dp"></ImageView>
</LinearLayout>
<TextView android:layout_height="wrap_content"
android:layout_width="fill_parent" android:gravity="center_horizontal"
android:id="@+id/searchTip" android:text="@string/searchTip"
android:paddingTop="10dp" android:paddingBottom="10dp"></TextView>
<LinearLayout android:layout_height="wrap_content"
android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_width="wrap_content">
<Button android:text="Button" android:id="@+id/button1"
android:layout_width="wrap_content" android:layout_height="wrap_content"></Button>
<Button android:layout_width="wrap_content" android:id="@+id/button2" android:layout_height="wrap_content" android:text="Button"></Button>
<Button android:layout_width="wrap_content" android:id="@+id/button3" android:layout_height="wrap_content" android:text="Button"></Button>
</LinearLayout>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我引用的LinearLayout具有id:linearLayout1.我该怎么做呢?
我正在测试适用于Android的新Google Maps API V2,并在应用启动时收到此消息:

这是在4.1模拟器上运行.
这是我的AndroidManifest.xml档案:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.maptest"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="15" />
<permission
android:name="com.example.maptest.permission.MAPS_RECEIVE"
android:protectionLevel="signature"/>
<uses-permission android:name="com.example.maptest.permission.MAPS_RECEIVE"/>
<uses-permission android:name="com.google.android.providers.gsf.permission.READ_GSERVICES"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<!-- Require OpenGL ES version 2 -->
<uses-feature
android:glEsVersion="0x00020000"
android:required="true"/>
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<meta-data
android:name="com.google.android.maps.v2.API_KEY"
android:value="##myapikey##"/>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
文件MainActivity.java:
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); …Run Code Online (Sandbox Code Playgroud) android google-maps android-mapview google-maps-android-api-2
我正在尝试通过json_decode()解析时处理错误的json数据.我正在使用以下脚本:
if(!json_decode($_POST)) {
echo "bad json data!";
exit;
}
Run Code Online (Sandbox Code Playgroud)
如果$ _POST等于:
'{ bar: "baz" }'
Run Code Online (Sandbox Code Playgroud)
然后json_decode处理错误并且吐出"坏的json数据!"; 但是,如果我将$ _POST设置为"无效数据"之类的东西,它会给我:
Warning: json_decode() expects parameter 1 to be string, array given in C:\server\www\myserver.dev\public_html\rivrUI\public_home\index.php on line 6
bad json data!
Run Code Online (Sandbox Code Playgroud)
我是否需要编写自定义脚本来检测有效的json数据,还是有其他一些很好的方法来检测它?
我目前正在将Google Analytics应用到我的应用中.该文档没有说明当用户没有互联网连接时如何处理跟踪.数据是否被抛出或存储在某个地方以便以后上传?
用户可以在我的网站上使用HTML表单输入URL,因此他们可能会输入如下内容:http://www.example.com?test = 123&random = abc,它可以是任何内容.我需要提取某个查询参数的值,在本例中为'test'(值为123).有没有办法做到这一点?
在http://developer.android.com/guide/components/loaders.html上的 Loaders的Android文档中,它说加载器的一个属性是:
在配置更改后重新创建时,它们会自动重新连接到最后一个加载器的光标.因此,他们不需要重新查询他们的数据.
以下代码似乎没有镜像该行为,创建一个新的Loader完成查询ContentResolver,然后我旋转屏幕并重新创建Loader!
public class ReportFragment extends Fragment implements LoaderCallbacks<Cursor> {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getLoaderManager().initLoader(1, null, this);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_report, container, false);
return v;
}
public Loader<Cursor> onCreateLoader(int arg0, Bundle arg1) {
Log.d("TEST", "Creating loader");
return new CursorLoader(getActivity(), ResourcesContract.Reports.CONTENT_URI, null, null, null, null);
}
public void onLoadFinished(Loader<Cursor> arg0, Cursor arg1) {
Log.d("TEST", "Load finished");
}
public void onLoaderReset(Loader<Cursor> arg0) {
}
} …Run Code Online (Sandbox Code Playgroud) 我需要了解这个功能的基础知识.对于blowfish算法,php.net文档指出:
Blowfish用盐进行散列如下:"$ 2a $",两位数的成本参数"$",以及字母"./0-9A-Za-z"中的22位64位数字.在salt中使用此范围之外的字符将导致crypt()返回零长度字符串
因此,根据定义,这不应该起作用:
echo crypt('rasmuslerdorf', '$2a$07$usesomadasdsadsadsadasdasdasdsadesillystringforsalt$');
Run Code Online (Sandbox Code Playgroud)
然而,它吐出:
$2a$07$usesomadasdsadsadsadaeMTUHlZEItvtV00u0.kb7qhDlC0Kou9e
Run Code Online (Sandbox Code Playgroud)
看来crypt()已将盐本身切成22的长度.有人可以解释一下吗?
我无法理解这个功能的另一个方面是当他们使用crypt()来比较密码时.http://php.net/manual/en/function.crypt.php(见前#1).这是否意味着如果我使用相同的盐来加密所有密码,我必须首先加密它?即:
$salt = "usesomadasdsadsadsadae";
$salt_crypt = crypt($salt);
if (crypt($user_input, $salt) == $password) {
// FAIL WONT WORK
}
if (crypt($user_input, $salt_crypt) == $password) {
// I HAVE TO DO THIS?
}
Run Code Online (Sandbox Code Playgroud)
谢谢你的时间
我正在尝试开发一个网站,根据用户的偏好向用户推荐商品(fx.书籍).到目前为止,我已经阅读了O'Reilly的"集体智慧"和其他许多在线文章.然而,它们似乎只处理单个推荐实例,例如,如果您喜欢A书,那么您可能会喜欢书B.
我要做的是为我网站上的每个用户创建一组"首选节点".假设用户喜欢书A,B和C.然后,当他们添加书D时,我不希望系统推荐仅基于其他用户体验书D的其他书籍.我不想系统查找类似'preference-nodes'并基于此推荐书籍.
以下是4个节点的示例:
User1: 'book A'->'book B'->'book C'
User2: 'book A'->'book B'->'book C'->'book D'
user3: 'book X'->'book Y'->'book C'->'book Z'
user4: 'book W'->'book Q'->'book C'->'book Z'
Run Code Online (Sandbox Code Playgroud)
因此,如我在阅读的材料中所述,推荐系统会向用户1推荐Z书,因为有两个人推荐Z与喜欢C一起使用(即Z重量超过D),即使是用户使用类似的'偏好节点',User2,更有资格推荐书D,因为他有更相似的兴趣模式.
所以你们有没有这方面的经验?是否有一些我应该尝试阅读的内容,或者是否存在任何开源系统?
谢谢你的时间!
小编辑:我认为last.fm的算法正在完成我的系统操作.使用人们的偏好树来向人们更个性化地推荐音乐.而不只是说"你可能喜欢B,因为你喜欢A"
目前我的drawable只是缩放到它的正常大小,我希望它适合我的按钮.这是现在的样子:

这是按钮的xml:
<LinearLayout android:layout_width="wrap_content"
android:id="@+id/linearLayout2" android:layout_height="40dp"
android:layout_weight="0.4" android:gravity="right|center_vertical"
android:paddingRight="5dp">
<Button android:id="@+id/button1" android:background="@drawable/refresh"
android:layout_height="25dp" android:layout_width="150dp"
android:text="@string/buttonSearchAgain" android:drawableRight="@drawable/refresh_48"></Button>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
所以我希望它看起来像这样:

有什么办法可以缩小我的画幅吗?
我做了一个小的自定义视图组件:
public class ActionBar extends RelativeLayout
{
public ActionBar(Context context, AttributeSet attrs)
{
super(context, attrs);
// .. custom logic here
}
private class homeButtonListener implements OnClickListener
{
@Override
public void onClick(View v)
{
// how do i get the context here?
}
}
}
Run Code Online (Sandbox Code Playgroud)
每个ActionBar组件都带有一个home-button,所以我认为将它的onClickListener放在视图定义本身中是合适的.按钮应该在单击时将用户返回到主活动,但我需要一个Context才能启动活动.我可以创建对构造函数中传递的上下文的本地引用,而不会遇到大量内存泄漏吗?