2010-05-27 108 views
0

hereAndroid项目问题

我上传了我在Eclipse中制作的Android项目。这个想法是,我有一个服务,计算两个随机数的总和。但是当我按下确定按钮时,我在该编辑框中看不到结果...为什么?我做错了什么?请帮忙

谢谢!

编辑:代码:

//服务类

package service; 

import java.util.Random; 
import com.android.AplicatieSuma; 
import android.widget.EditText; 
import android.widget.TextView; 

public class ServiciuSuma 
{ 
    public ServiciuSuma() { } 

    public int CalculateSum() 
    { 
     Random generator=new Random(); 
     int n=generator.nextInt(); 
     int m=generator.nextInt(); 
     return n+m; 
    } 
} 

的应用类:

package com.android; 
import android.app.*; 
import service.*; 

public class ApplicationSum extends Application { 
    public ServiciuSuma service = new ServiciuSuma(); 
} 

和主Activity类:

package com.android; 

import com.android.R; 

import android.app.Activity; 
import android.content.Intent; 
import android.graphics.Color; 
import android.graphics.PorterDuffColorFilter; 
import android.graphics.drawable.Drawable; 
import android.graphics.PorterDuff; 
import android.os.Bundle; 
import android.provider.Settings; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.EditText; 
import android.view.Menu; 
import android.view.MenuInflater; 
import android.view.MenuItem; 

public class Activitate extends Activity { 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     View btn_ok = findViewById(R.id.btn_ok); 
     btn_ok.setOnClickListener(new OnClickListener() 
      { 
       public void onClick(View v) 
       { 
        CalculeazaSuma();     
       } 
      }); 
    } 


    private void CalculeazaSuma() 
    { 
     AplicatieSuma appState = ((AplicatieSuma)this.getApplication()); 
     EditText txt_amount = (EditText)findViewById(R.id.txt_amount); 
     txt_amount.setText(appState.service.CalculateSum()); 
     //BindData(); 
    } 
} 

使编辑文字呢不显示服务随机生成的数字的总和。怎么了?

感谢

编辑:

清单xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
     package="com.android" 
     android:versionCode="1" 
     android:versionName="1.0.1"> 
     <supports-screens 
      android:largeScreens="true" 
      android:normalScreens="true" 
      android:smallScreens="true" 
      android:anyDensity="true" /> 

    <application android:name="ApplicationSum" android:icon="@drawable/icon" android:label="@string/app_name" android:debuggable="true"> 
     <activity android:label="@string/app_name" android:name=".Activitate"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 
       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
</application> 
    <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="7" /> 
</manifest> 
+1

如果您可以在这里发布代码片段,而不是在某处上传项目,您可以期待更多的答案。 – primpap 2010-05-27 14:41:01

+1

您需要至少发布一段代码。今天我的水晶球破了。 – chr 2010-05-27 14:41:37

+0

尝试在CalculeazaSuma()中使用txt_amount.setText(“Test string”)并查看该按钮是否激活该按钮。这是缩小EditText或服务无法工作的一种方法。 – HXCaine 2010-05-27 15:46:36

回答

0

此修复程序将工作:

txt_amount.setText(String.valueOf(appState.service.CalculateSum())); 

没有您传递整数和Android认为这是一种资源来显示的ID。你应该真的使用DDMS来识别这些问题。

0

有你想要ApplicationSum用作应用程序类清单规定?

<manifest xmlns:android="http://schemas.android.com/apk/res/android"> 
    <application 
     android:name="com.android.ApplicationSum"> 
     ... 
    </application> 
</manifest> 
+0

是的(我编辑了第一篇文章).. – qwerty 2010-05-27 16:35:27

0

这工作?

public String CalculateSum() 
{ 
    Random generator=new Random(); 
    int n=generator.nextInt(); 
    int m=generator.nextInt(); 

    String sum = Integer.toString(n+m) ; 

    Log.v("CalculateSum", "N+M = " + sum); 

    return sum; 
} 
+0

String sum = n + m?不能从int转换为字符串.. – qwerty 2010-05-27 16:45:27

+0

但是,首先,如何确保这些数字是真正生成的,我怎样才能看到它们? – qwerty 2010-05-27 16:46:04

+0

检查编辑。如果您不知道日志行的含义,请在google上搜索“adb logcat” – HXCaine 2010-05-27 16:53:13