lz先去喝一碗热翔……
国庆前分配的一个囧任务,要自定义一个spinner,并且在spinner下面加上一个用于搜索的EditText。大概效果如下
这个spinner真心太奇葩,同学给的资料 http://t.cn/zlWKruo 怪我太弱逼一点都没看懂。后来各种自定义spinner没法做之后决定使用dialog来模拟spinner。
然后连着跪了一上午,终于找到了一个解决办法就是,用setItems函数来制作一个spinner,并在底部用setView加上一个TableLayout~~
大牛们鄙视我吧,我还是太弱了
献上弱代码
package com.example.dialogact;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
Button button;
String[] num={"1","2","3","4","5","6","7","8"};
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button=(Button)findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
LayoutInflater layoutInflater = LayoutInflater.from(MainActivity.this);
View myLoginView = layoutInflater.inflate(R.layout.dlg, null);
new AlertDialog.Builder(MainActivity.this)
.setTitle("选择")
.setItems(num, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
button.setText(num[which]);
Toast info =Toast.makeText(MainActivity.this, num[which],Toast.LENGTH_LONG);
info.setMargin(0.0f, 0.3f);
info.show();
}
}
)
.setView(myLoginView).create().show();
}
});
}
}
Avtivity的布局文件
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <Button android:id="@+id/button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="xx" android:layout_weight="1" ></Button> </LinearLayout>
dialog的布局文件dlg.xml
<?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="wrap_content" > <TableRow> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="搜索:" android:textSize="30dp" android:layout_weight="1" /> <EditText android:id="@+id/text1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="1" /> </TableRow>> </TableLayout>
实现的效果