2010-05-27 4 views
0

hereПроблема с проектом Android

Я загрузил свой проект Android в Eclipse. Идея заключается в том, что у меня есть служба, которая вычисляет сумму двух случайных чисел. Но когда я нажимаю кнопку ОК, я не вижу результата в этом окне редактирования ... почему? Что я делаю неправильно? Пожалуйста, помогите

Спасибо!

EDIT: Код:

// класс обслуживания класса

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(); 
} 

и основной класс активность:

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(); 
    } 
} 

Так что редактировать текст не отображать сумму случайных сгенерированных чисел службой. Что не так?

Благодаря

EDIT:

манифеста 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

+1

Вам необходимо разместить хотя бы фрагмент кода. Мой хрустальный шар сломался сегодня. – chr

+0

Попробуйте использовать txt_amount.setText ("Test string") в CalculeazaSuma() и посмотрите, активирует ли эта кнопка. Это один из способов сузить либо EditText, либо службу, которая не работает. – HXCaine

ответ

0

Это исправление будет работать:

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

Без что вы передаете целое и андроид думает, что это идентификатор ресурса для отображения. Вы действительно должны использовать DDMS для выявления таких проблем.

0

ли вы указали в манифесте, что вы хотите ApplicationSum для использования в качестве класса приложения?

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

Да (я отредактировал первое сообщение) .. – qwerty

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

Строка sum = n + m? не может преобразовать из int в String .. – qwerty

+0

Но во-первых, как можно гарантировать, что эти числа действительно сгенерированы, и как я могу их увидеть? – qwerty

+0

Проверьте изменения.Если вы не знаете, что означает строка журнала, найдите google для «adb logcat» – HXCaine

Смежные вопросы