我正在从一本书中构建我的第一个Android程序.它一直在崩溃XML文件.我从书中下载了xml代码,使用它并且运行正常!
当我看着它们时,它们对我来说都是一样的!我是否遗漏了一些关于XML的内容 - 是否存在有趣的空白空间问题,大写字母,特殊字符或者我的XML中只有一个奇怪的gremlin!
它现在正在运作,但我想知道原因.
这有效!
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dip">
<TextView
android:id="@+id/about_content"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/about_text" />
</ScrollView>
Run Code Online (Sandbox Code Playgroud)
这不起作用:崩溃:java.lang.runtime.exception.二进制xml文件lin#1:您必须提供layout_width属性.
<ScrollView
xmlns:android="http://schemas.android.com/apk/res/android"
android.layout_width="fill_parent"
android.layout_height="fill_parent"
android:padding="10dip">
<TextView
android:id="@+id/about_content"
android.width ="wrap_content"
android.height ="wrap_content"
android:text="@string/about_text"/>
</ScrollView>
Run Code Online (Sandbox Code Playgroud) COED到目前为止:我不会,如果我应该使用线程或什么样的计时器-_--
clicker.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
counter++;
seconds = 5000;
timer.schedule(new TimerTask() {
public void run() {
Intent x = new Intent(startClickActivity.this, ClickCountActivity.class);
startActivity(x);
}
}, seconds);
}
});
Run Code Online (Sandbox Code Playgroud) 我需要创建一个监控收到和发送的短信的服务.
该过程的唯一工作是监听短信并将其保存在数据库中
但是,这项服务不能死,我不能停下来听.
经过一些研究,我发现我可以使用startForeground启动服务.
startForeground的文档:
已启动的服务可以使用startForeground(int,Notification)API将服务置于前台状态,系统将其视为用户主动了解的内容,因此在内存不足时不会成为查杀的候选者.(从理论上讲,服务在当前前台应用程序的极端内存压力下被杀死仍然是可能的,但实际上这不应该是一个问题.)
在我开始对服务进行编程之前,我想过要求更好的选择,如果有的话.
那么,有人知道更好的方法吗?
我正在扩展AsyncTask并在我的doInBackground()中使用findViewById得到一个按钮视图,当我调用button.performClick()时,我的应用程序崩溃了.
知道为什么吗?
这是logcat:
E/AndroidRuntime(604): FATAL EXCEPTION: AsyncTask #2
E/AndroidRuntime(604): java.lang.RuntimeException: An error occured while executing doInBackground()
E/AndroidRuntime(604): at android.os.AsyncTask$3.done(AsyncTask.java:278)
E/AndroidRuntime(604): at java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
E/AndroidRuntime(604): at java.util.concurrent.FutureTask.setException(FutureTask.java:124)
E/AndroidRuntime(604): at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
E/AndroidRuntime(604): at java.util.concurrent.FutureTask.run(FutureTask.java:137)
E/AndroidRuntime(604): at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1076)
E/AndroidRuntime(604): at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:569)
E/AndroidRuntime(604): at java.lang.Thread.run(Thread.java:856)
E/AndroidRuntime(604): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
E/AndroidRuntime(604): at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:4039)
E/AndroidRuntime(604): at android.view.ViewRootImpl.playSoundEffect(ViewRootImpl.java:3610)
E/AndroidRuntime(604): at android.view.View.playSoundEffect(View.java:13103)
E/AndroidRuntime(604): at android.view.View.performClick(View.java:3510)
Run Code Online (Sandbox Code Playgroud) 我有一个Fragment"选择一年"按钮.此按钮ListFragment在后台添加一个用户可以选择一年的后台.一旦选择了一年,我想处理ListFragment并返回第一个片段.使用在ListFragment?中选择的数据更新第一个片段的最佳方法是什么?
TL; DR:Fragment1打开Fragment2,用户在Fragment2中选择选项.如何使用此数据更新Fragment1?
我目前的解决方案是一个静态成员的公共类,但我想知道是否Android有更好的方法.
为什么if-else部分在下面的代码中不起作用.我检查了success之前的值,if它正在返回,true但里面的代码if不起作用.
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
dialog.dismiss();
System.out.println(success);
if(success == "true")
{
Toast t = Toast.makeText(getApplicationContext(), "Successfully logged in", Toast.LENGTH_SHORT);
t.show();
Intent intent = new Intent(MainActivity.this, Quote_Details.class);
intent.putExtra("sessionId", sessionId);
startActivity(intent);
}
else if(success == "fals")
{
Toast f = Toast.makeText(getApplicationContext(), "LOGIN FAILED", Toast.LENGTH_LONG);
f.show();
}
}
Run Code Online (Sandbox Code Playgroud) 我知道StackOverflow上有很多关于这个主题的表单,但没有一个固定的工作对我有用.
当我运行代码时:
muteText.setText("Testing")
Run Code Online (Sandbox Code Playgroud)
我收到一个错误.
MainActivity.java
//Class Variables
Button startTime;
Button endTime;
TextView muteTime;
TextView unmuteTime;
int hour;
int minute;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//Define Variables
startTime = (Button)findViewById(R.id.startButton);
endTime = (Button)findViewById(R.id.endTime);
muteTime = (TextView)findViewById(R.id.muteText);
Log.i("SchedMute", "muteTime: " + muteTime.getText().toString());
unmuteTime = (TextView)findViewById(R.id.unmuteTime);
//Button Listeners
startTime.setOnClickListener(this);
endTime.setOnClickListener(this);
//--\\
hour = 0;
minute = 0;
}
public void onClick(View v){
int id = v.getId();
if(id == R.id.startButton){ //Selecting time 2 Mute phone
showTimePickerDialog(v);
}
}
public void setStartTime(){ …Run Code Online (Sandbox Code Playgroud)