package gale.activity03;import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
//上面多的包不管
public class Acitivity03 extends Activity {
    /** Called when the activity is first created. */    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        factorOne=(EditText)findViewById(R.id.factorOne);
        factorTwo=(EditText)findViewById(R.id.factorTwo);
        calculate=(Button)findViewById(R.id.calculate);
        symbol=(TextView)findViewById(R.id.symbol);       symbol.setText(R.string.symbol);
       calculate.setText(R.string.calculate);
}
}
谁可以帮我看看这段是哪儿的问题  我怎么看都不知道是哪儿的问题

解决方案 »

  1.   

    我怎么没看到你有定义factorOne等的这些(实例)变量......本人新手,说错请勿见怪
      

  2.   


    定义了的,
    没有这两行都没问题
      symbol.setText(R.string.symbol);
      calculate.setText(R.string.calculate);
      

  3.   


    就是一个简单的Acitivity 居然不行  哎 实在不知道哪儿的问题 我把代码全贴上吧
    package gale.activity03;import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;public class Acitivity03 extends Activity {
        /** Called when the activity is first created. */
    private Button calculate;
    private EditText factorOne;
    private EditText factorTwo;
    private TextView symbol;    @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            factorOne=(EditText)findViewById(R.id.factorOne);
            factorTwo=(EditText)findViewById(R.id.factorTwo);
            calculate=(Button)findViewById(R.id.calculate);
            symbol=(TextView)findViewById(R.id.symbol);        //symbol.setText("乘以");
           //calculate.setText("计算");
           symbol.setText(R.string.symbol);
           calculate.setText(R.string.calculate);
           //将监听器绑定到按钮对象上
           calculate.setOnClickListener(new CalculateListener());
        }
        
        class CalculateListener implements OnClickListener{ @Override
    public void onClick(View v) {
    //取得两个EditText控件的值
    String factorOneStr = factorOne.getText().toString();
    String factorTwoStr = factorTwo.getText().toString();
    //将这两个值存放到Intent对象当中
    Intent intent=new Intent();
    intent.putExtra("one", factorOneStr);
    intent.putExtra("two", factorTwoStr);
    intent.setClass(Acitivity03.this, ResaultActivity.class);
    //最后引用这个Intent的值来启动ResaultActivity
    Acitivity03.this.startActivity(intent);
    }
    }
    }就是设置symbol显示,随便怎么就有问题、
      //symbol.setText("乘以");
           //calculate.setText("计算");
      

  4.   

      
      factorOne=(EditText)findViewById(R.id.factorOne);
      factorTwo=(EditText)findViewById(R.id.factorTwo);
      calculate=(Button)findViewById(R.id.calculate);
      symbol=(TextView)findViewById(R.id.symbol);改为EditText factorOne = (EditText)findViewById(R.id.factorOne);
    EditText factorTwo = (EditText)findViewById(R.id.factorTwo);
    Button calculate = (Button)findViewById(R.id.calculate);
    TextView symbol = (TextView)findViewById(R.id.symbol);
      

  5.   

    我试了一下, 应该是calculate.setText("计算");这行代码出错了, Button提供了setText的方法, 但是这样用就会出错。 这种固定的设置Text的建议在布局文件中定义:android:text="计算"。楼主自己可以试一下。
      

  6.   

    这个是mars视频中的activity03吧  MS没问题啊
    你把打印信息发出来看看吧
      

  7.   


    嗯  晚上回去就发给你帮我看看。
    我也觉得是没问题,昨晚整到3点,我把之前的Acivity02的复制出来改就行、我自己写就又还是这样。你帮我分析下是什么问题。郁闷得我哦  蛋都要疼碎了,今天还一大早起来上班
      

  8.   

    我也是正在弄这个程序,你那块倒是没有问题,我的问题出现在EditText取值那块,你的是不是有可能,你那个stream.xml中没写对啊!?
      

  9.   

    不是 我最开始确实是出现了这样的问题但通过在google上百度我都解决了,已经能正确显示中文了,不是编码问题
      

  10.   

    你是说我自己建的.xml要写什么?
      

  11.   

    你没说明白你说的有问题,到底哪里出问题了。是指拿不到值吗。这是拿editText值的代码 mEmailET.setOnKeyListener(new EditText.OnKeyListener()
    {
    public boolean onKey(View arg0, int arg1, KeyEvent arg2) {
    mEmail = mEmailET.getText().toString();
    return false;
    }
    });
      

  12.   


    哎  我蛋都要疼碎了,就是我在控件.setText()这步就会出问题。不设置控件的显示文本就没问题,设置了一运行就11-02 11:14:54.199: E/dalvikvm(352): Unable to open stack trace file '/data/anr/traces.txt': Permission denied
      

  13.   


    出现这个
    Unable to open stack trace file '/data/anr/traces.txt': Permission denied
      

  14.   

    把这句
    //将监听器绑定到按钮对象上
      calculate.setOnClickListener(new CalculateListener());
    改为
    calculate.setOnClickListener(this);
    就可以了。
      

  15.   

    我实现了一个加法的sample  我看到论坛里另外一个兄弟也在纠结这个真的没错误啊。。 CalculatorAvtivity.java:
    package com.zhoujl.android.calculator;import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;public class CalculatorAvtivity extends Activity {

    private EditText et1,et2;
    private TextView tv1;
    private Button button;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            findViewById();
            setListener();
        }

    private void findViewById() {
    et1 = (EditText)findViewById(R.id.et1);
    et2 = (EditText)findViewById(R.id.et2);
    button = (Button)findViewById(R.id.button1);
    }

    private void setListener() {
    button.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
    String number1 = et1.getText().toString().trim();
    String number2 = et2.getText().toString().trim();
    Intent intent = new Intent();
    intent.setClass(CalculatorAvtivity.this, Result.class);
    intent.putExtra("number1", number1);
    intent.putExtra("number2", number2);
    startActivity(intent);
    }
    });
    }
    }
    Result.java
    package com.zhoujl.android.calculator;import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;public class Result extends Activity { TextView tv;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.result);
    tv = (TextView)findViewById(R.id.tv);
    Intent intent = getIntent();
    float number1 = Float.parseFloat(intent.getStringExtra("number1")); 
    float number2 = Float.parseFloat(intent.getStringExtra("number2"));
    tv.setText("结果是"+(number1+number2));
    }
    }
    main.xml
    <?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="fill_parent"
        >
    <TextView  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/hello"
        />
        
    <EditText android:id="@+id/et1"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
    />    
    <EditText android:id="@+id/et2"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
    /> 
    <TextView android:id="@+id/tv1"  
        android:layout_width="fill_parent" 
        android:layout_height="wrap_content" 
        android:text="@string/cal"
        />
    <Button android:id="@+id/button1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/button"
    />   
    </LinearLayout>result.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content">
     <TextView android:id="@+id/tv" 
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
     />
    </LinearLayout>AndroidManifest.xml
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
          package="com.zhoujl.android.calculator"
          android:versionCode="1"
          android:versionName="1.0">
        <application android:icon="@drawable/icon" android:label="@string/app_name">
            <activity android:name=".CalculatorAvtivity"
                      android:label="@string/app_name">
                <intent-filter>
                    <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
    <activity android:name=".Result">
    </activity>
        </application>
        <uses-sdk android:minSdkVersion="8" /></manifest> strings.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>
        <string name="hello">Hello World, CalculatorAvtivity!</string>
        <string name="app_name">Calculator</string>
    <string name="cal">加</string>
    <string name="button">计算</string>
    </resources>
      

  16.   

    再次贴上全部代码  求高人指点啊。
    Activity03
    package gale.activity03;import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;public class Activity03 extends Activity {
        /** Called when the activity is first created. */
    private Button calculate;
    private TextView symbol;
    private EditText factorOne;
    private EditText factorTwo;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            factorOne=(EditText)findViewById(R.id.factorOne);
            symbol=(TextView)findViewById(R.id.symbol);
            factorTwo=(EditText)findViewById(R.id.factorTwo);
            calculate=(Button)findViewById(R.id.calculate);
            //calculate.setText(R.string.calculate);
            //symbol.setText(R.string.symbol);
            calculate.setOnClickListener(new CalculateListener());
            
        }
        
        class CalculateListener implements OnClickListener{ @Override
    public void onClick(View v) {
    // TODO Auto-generated method stub
    Intent intent=new Intent();
    String factorOneStr=factorOne.getText().toString();
    String factorTwoStr=factorTwo.getText().toString();
    intent.putExtra("one", factorOneStr);
    intent.putExtra("Two", factorTwoStr);
    intent.setClass(Activity03.this, Result.class);
    Activity03.this.startActivity(intent);
    }
        }
    }strings.xml
    <?xml version="1.0" encoding="utf-8"?>
    <resources>    <string name="hello">Hello World, Activity03!</string>
        <string name="app_name">Activity03</string>
        <string name="symbol">乘以</string>
        <string name="calculate">计算</string></resources>main.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >    <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@+id/factorOne" />
         <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@+id/symbol" />
         <EditText
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@+id/factorTwo" />
          <Button
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@+id/calculate" /></LinearLayout>Resultpackage gale.activity03;import gale.activity03.R;
    import android.app.Activity;
    import android.content.Intent;
    import android.os.Bundle;
    import android.widget.TextView;public class Result  extends Activity {
        /** Called when the activity is first created. */
    private TextView resultView;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.result);
            resultView=(TextView)findViewById(R.id.result);
            Intent intent=getIntent();
            String factorOneStr=intent.getStringExtra("one");
            String factorTwoStr=intent.getStringExtra("two");
            int factorOne=Integer.parseInt(factorOneStr);
            int factorTwo=Integer.parseInt(factorTwoStr);
            int result=factorOne*factorTwo;
            resultView.setText(result+"");
            
        }}
    result.xml
    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:orientation="vertical" >
         <TextView
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:text="@+id/result" /></LinearLayout>
    应该发完的吧?我实在欲哭无泪了
      

  17.   

    AndroidManifest.xml呢 其他的我真没看出啥错误
      

  18.   


    AndroidManifest.xml
    Java code
    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="gale.activity03"
        android:versionCode="1"
        android:versionName="1.0" >    <uses-sdk android:minSdkVersion="7" />    <application
            android:icon="@drawable/ic_launcher"
            android:label="@string/app_name" >
            <activity
                android:label="@string/app_name"
                android:name=".Activity03" >
                <intent-filter >
                    <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />
                </intent-filter>
            </activity>
            <activity android:name=".Resilt"  android:label="计算结果"></activity>
        </application></manifest>
    其实我还有个帖子你也看了 http://topic.csdn.net/u/20111102/23/de735f0e-5ef0-4bd9-b53a-f12a265e4ff7.html?46824
    哎 真是纠结了。
    哪位大哥肯帮我跑一下指点啊。
    邮箱[email protected]
      

  19.   

    噢,这个AndroidManifest.xml里面
    最后注册是<activity android:name=".Result" android:label="计算结果"></activity>  粘错了
      

  20.   

    我都不好意思了,我准备跳过这个环节了
    是<activity android:name=".result" android:label="计算结果"></activity> 
      

  21.   

    大写.Result是对的把 是activity 的名字呀
      

  22.   

    帮我到这里看看吧……http://topic.csdn.net/u/20111102/23/de735f0e-5ef0-4bd9-b53a-f12a265e4ff7.html?46824
      

  23.   

    额,在Java代码中获取string.xml定义的字符串不是像你那样写的。
    应该这样写:symbol.setText(Activity03.this.getResources().getString(R.string.symbol));
      

  24.   

    R.string.symbol实际对应的是个int类型的变量。
      

  25.   

    终于顺利的跳过这一节了,原来是main.xml的问题