我想在a的下拉列表中添加一个自定义高度Spinner,比如30dp,我想隐藏下拉列表中的分隔符Spinner.
到目前为止,我尝试实现以下样式Spinner:
<style name="spinner_style">
<item name="android:paddingLeft">0dp</item>
<item name="android:dropDownWidth">533dp</item>
<item name="android:showDividers">none</item>
<item name="android:dividerHeight">0dp</item>
<item name="android:popupBackground">@drawable/new_bg</item>
<item name="android:dropDownHeight">70dp</item>
<item name="android:scrollbarAlwaysDrawVerticalTrack">true</item>
<item name="android:dropDownSelector">@android:color/white</item>
</style>
Run Code Online (Sandbox Code Playgroud)
我的微调器的代码是:
<Spinner
android:id="@+id/pioedittxt5"
android:layout_width="543dp"
android:layout_height="63dp"
android:layout_toRightOf="@+id/piotxt5"
android:background="@drawable/spinner"
style="@style/spinner_style"
android:dropDownVerticalOffset="-53dp"
android:spinnerMode="dropdown"
android:drawSelectorOnTop="true"
android:entries="@array/travelreasons"
android:prompt="@string/prompt" />
Run Code Online (Sandbox Code Playgroud)
但似乎没有任何效果.
所以我创建了一个名为CustomTitlebarActivity的Activity子类.基本上,我的应用程序中的每个主要活动都将有一个自定义标题栏,其中包含许多常用功能,如主页按钮,标题,搜索按钮等.在我当前的实现中,我仍然在布局XML中明确使用include语句每个CustomTitlebarActivity:
<include layout="@layout/titlebar" />
Run Code Online (Sandbox Code Playgroud)
我应该能够在CustomTitlebarActivity中执行此操作,这似乎很自然.我有两个问题:什么代码可以替换此包含标记,我应该在哪里放置代码?(我的第一直觉是将它放在CustomTitlebarActivity的setContentView方法中.)
在相关的说明中,我希望能够深入了解重用Android UI代码的更好方法(即使本身标题栏需要在活动之间略有不同.)
我从活动A调用活动B,其中包含使用以下代码的视频视图:
Intent intent = new Intent(this, B.class);
intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivityForResult(intent, 0);
Run Code Online (Sandbox Code Playgroud)
我正在使用Intent.FLAG_ACTIVITY_NO_ANIMATION以避免在调用新活动时转换动画.但它不适合我和黑屏在转型期间即将到来.有没有办法避免这种过渡动画和黑屏,以便用户不会知道在新屏幕中调用视频视图?
我正在使用showDialog()和dismissDialog()在我的应用程序中显示进度对话框.从创建对话框并调用show()它到使用它以便在更改方向时保存状态.
但是当我从纵向 - >横向 - >纵向更改方向时,dismissDialog()不再取消对话框.对话框一直停留在那里,我需要按后退按钮才能消失.
有什么理由说它会这样吗?
编辑
为了解决这个问题,我尝试添加一个removeDialog()in,onDestroy()这样就不会创建/显示对话框两次,在更改方向之前,会删除该对话框.尝试添加日志语句,看看会发生什么
05-21 12:35:14.064: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:14.064: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.385: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:15.415: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:15.585: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:15.585: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:15.715: DEBUG/MyClass(193): *************onCreareDialog
05-21 12:35:17.214: DEBUG/MyClass(193): *************onSaveInstanceState
05-21 12:35:17.214: DEBUG/MyClass(193): *************onDestroy
05-21 12:35:17.275: ERROR/WindowManager(193): android.view.WindowLeaked: Activity com.android.MyClass has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView@43362088 that was originally added here
05-21 12:35:17.395: DEBUG/MyClass(193): *************callingShowDialog
05-21 12:35:17.395: DEBUG/MyClass(193): *************onCreareDialog …Run Code Online (Sandbox Code Playgroud) 我知道这是一个愚蠢的问题,但是我坚持了2个小时.可以告诉我如何启用在我们开始日食时打开的对话框并从那里选择工作区位置.
请参阅我希望在eclipse启动时首先显示此窗口
我错误地检查了"将此作为默认设置,不要再问".
请指导我如何再次显示此对话框
我想在android中的曲线外面包围bezier曲线形状的文本.
我尝试过的:
Path path = new Path();
path.addCircle(x, y, radius, Path.Direction.CW);
myCanvas.drawTextOnPath(myText, path, offset, 0, myPaint);
Run Code Online (Sandbox Code Playgroud)
我想要实现的目标:
但是这段代码在曲线上绘制文本.我不想在曲线上写文本.我想根据曲线包装文本并将其写在下一行.
要清楚地理解它,请参考baconforme.com ..我想在不使用webbrowser的情况下在android中创建这种jquery行为.
并看到这个链接在Android上如何在贝塞尔路径中包装文本
问题:
我正在关注这些链接以获取我的应用程序中的联系人
http://www.higherpass.com/Android/Tutorials/Working-With-Android-Contacts/
我可以在手机上显示联系人列表
-
我想在每个联系人处添加一个复选框,以便用户可以选择多个联系人,通过单击完成按钮,他应该能够获得他选择的所有联系人
另外,我想获取联系人姓名以及联系电话号码,请参阅我的代码:
if (resultCode == Activity.RESULT_OK) {
Uri contactData = data.getData();
Cursor c = managedQuery(contactData, null, null, null, null);
if (c.moveToFirst()) {
String name = c.getString(c
.getColumnIndexOrThrow(ContactsContract.Contacts.DISPLAY_NAME));
String number = c.getString(c.getColumnIndexOrThrow(ContactsContract.Contacts.HAS_PHONE_NUMBER));
Log.v("name", name +" "+number);
// TODO Whatever you want to do with the selected contact
// name.
}
}
在log cat上它显示输出为:
01-09 12:46:41.688: V/name(699): Xyz 1
Run Code Online (Sandbox Code Playgroud)
这是联系人的名字是xyz,它至少有一个与之关联的电话号码.请帮助我如何获得与该联系人相关的号码.
编辑:
如果我String number = c.getString(c.getColumnIndexOrThrow(People.NUMBER));在代码中使用this()行,我会得到以下异常:
01-09 13:33:23.008: E/AndroidRuntime(786): FATAL EXCEPTION: main
01-09 13:33:23.008: E/AndroidRuntime(786): java.lang.RuntimeException: …Run Code Online (Sandbox Code Playgroud) 在我的应用程序不希望使用默认的邮件发件人.为此,我按照以下链接在Android中是否可以在代码中向多个收件人发送短信?
我在我的代码中使用这样的短信管理器
SmsManager sms = SmsManager.getDefault(); sms.sendTextMessage(phoneNumber,null,message,null,null);
但它不发送sms.please帮助我如何在android中发送短信 - 我已经尝试过太多PendingIntent sentPI = PendingIntent.getBroadcast(这,0,新意图(SENT),0);
PendingIntent deliveredPI = PendingIntent.getBroadcast(this, 0,
new Intent(DELIVERED), 0);
SmsManager sms = SmsManager.getDefault();
sms.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI);
Run Code Online (Sandbox Code Playgroud)
它也不起作用.
SMSAPPActivity.java
编辑:
btnSendSMS.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
String message = txtMessage.getText().toString();
String[] PhnNoArray = new String[2];
PhnNoArray[0] = "9999999999";
PhnNoArray[1] = "8888888888";
// StringTokenizer st = new StringTokenizer(phoneNo, ",");
smsManager = SmsManager.getDefault();
for (int i = 0; i < PhnNoArray.length; i++) { …Run Code Online (Sandbox Code Playgroud) 从我的Android应用程序,我想将音频流式传输到A2DP扬声器,docking扬声器或car扬声器等任何可用的扬声器.
为此,我想使用蓝牙连接并通过蓝牙连接流...
我看到以下链接
setBluetoothA2dpOn(boolean on)
Android 2.3:如何从SCO切换到A2DP以获得功能强大的蓝牙扬声器?
但到处都是我发现的相同..即
public void setBluetoothA2dpOn (boolean on)
This method is deprecated.
Do not use.
Run Code Online (Sandbox Code Playgroud)
请指导我如何做到这一点..或建议是否可以使用其他方式完成..任何帮助/建议表示赞赏.
编辑:
清单中的许可:
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
Run Code Online (Sandbox Code Playgroud)
代码:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
layout = (RelativeLayout) findViewById(R.id.layout);
text = (TextView) findViewById(R.id.editText1);
scoSwitch = (ToggleButton) findViewById(R.id.switch1);
try {
mp1 = MediaPlayer.create(this, R.raw.jc_cm);
mp2 = MediaPlayer.create(this, R.raw.rp);
amanager = (AudioManager) getSystemService(Context.AUDIO_SERVICE);
//amanager.setBluetoothA2dpOn(true);
} catch (IllegalArgumentException e) {
// TODO Auto-generated catch block …Run Code Online (Sandbox Code Playgroud) 我第一次使用sharedPreferences,我似乎无法通过此错误.我有一个子菜单,应该允许用户设置他们的区域.这应该打开正确的区域活动,并在再次打开应用程序时进行存储和调用.我已经多次转圈,所以有些代码会有点奇怪.我一直专注于从美国(默认)改为英国.
在DDMS中,我得到了这个:
05-13 11:22:39.344: ERROR/AndroidRuntime(960): java.lang.NullPointerException
05-13 11:22:39.344: ERROR/AndroidRuntime(960): at android.content.ContextWrapper.getSharedPreferences(ContextWrapper.java:146)
05-13 11:22:39.344: ERROR/AndroidRuntime(960): at com.silifeform.android.Prefs.editRegion(Prefs.java:29)
05-13 11:22:39.344: ERROR/AndroidRuntime(960): at com.silifeform.android.dog.onOptionsItemSelected(dog.java:344)
Run Code Online (Sandbox Code Playgroud)
我的代码是这样的:
public class Prefs extends Activity {
public static final String PREFS_NAME="LocalePrefs";
private String region;
public boolean isUk;
public boolean isUs;
public boolean isEu;
@Override
protected void onCreate(Bundle state) {
super.onCreate(state);
//restore prefs
SharedPreferences settings= getSharedPreferences(PREFS_NAME,0);
String myRegion = settings.getString(region,"us");
this.region=myRegion;
changeLocale(getRegion());
}
public void editRegion(String sregion) {
// The error occurs here:
SharedPreferences settings = getSharedPreferences(PREFS_NAME,0);
SharedPreferences.Editor ed …Run Code Online (Sandbox Code Playgroud)