0

我正在编写一个 android 程序,它使用两个简单的活动按字母顺序排列三个单词。但是在第二个(输出)活动中,TextView 或 Intents 都不起作用。输出没有显示。Java 代码对于第一个(输入)活动如下:`package com.example.names;

import android.app.Activity;
import android.content.Context;
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.Toast;

public class Input extends Activity {
EditText t1,t2,t3;
final Context context=this;

String n[]=new String[100];
String t[]=new String[100];

String a1,a2,a3;
Button alpha;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.input);
    t1=(EditText)findViewById(R.id.editText1);
    t2=(EditText)findViewById(R.id.editText2);
    t3=(EditText)findViewById(R.id.editText3);
n[0]=t1.getText().toString();
n[1]=t2.getText().toString();
n[2]=t3.getText().toString();
for(int j=0;j<2;j++) 
    {
        for(int k=j+1;k<3;k++)
    {
    if(n[j].compareToIgnoreCase(n[k])>0)
        {
        String temp=n[j];
        n[j]=n[k];
        n[k]=temp;
        }
    }
    }
   a1=n[0];
    a2=n[1];
    a3=n[2];
   alpha=(Button)findViewById(R.id.button1);
   alpha.setOnClickListener(new OnClickListener() {

    public void onClick(View v) {
        // TODO Auto-generated method stub
        Intent i=new Intent(Input.this,Output.class);
        i.putExtra("x", a1+a2+a3);

           Toast.makeText(Input.this, "Method OnClick has been invoked",Toast.LENGTH_SHORT).show();
           startActivity(i);    
    }
});}}`

第二个活动的java代码如下:

package com.example.names;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
import android.widget.Toast;

public class Output extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

   TextView p1=new TextView(this);

   Bundle extras=getIntent().getExtras();

   if (extras!=null){
 String ans=extras.getString("x");
   p1.setText(ans);
   p1.setTextSize(50);
   Toast.makeText(Output.this, "All lines have been executed",Toast.LENGTH_LONG).show();
   setContentView(p1);

}};}

为什么不显示输出呢???该应用程序也没有崩溃。

4

1 回答 1

0

使用以下代码更改您的代码。

单击按钮时获取edittext值。

您的输入活动看起来像这样。

public class Input extends Activity {
    EditText t1,t2,t3;
    final Context context=this;

    String n[]=new String[100];
    String t[]=new String[100];

    String a1,a2,a3;
    Button alpha;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.input);

        t1=(EditText)findViewById(R.id.editText1);
        t2=(EditText)findViewById(R.id.editText2);
        t3=(EditText)findViewById(R.id.editText3);


       alpha=(Button)findViewById(R.id.button1);
       alpha.setOnClickListener(new OnClickListener() {

        public void onClick(View v) {
            // TODO Auto-generated method stub

            n[0]=t1.getText().toString();
            n[1]=t2.getText().toString();
            n[2]=t3.getText().toString();
            for(int j=0;j<2;j++) 
                {
                    for(int k=j+1;k<3;k++)
                {
                if(n[j].compareToIgnoreCase(n[k])>0)
                    {
                    String temp=n[j];
                    n[j]=n[k];
                    n[k]=temp;


                    }
                }
                }
               a1=n[0];
                a2=n[1];
                a3=n[2];
            Intent i=new Intent(Input.this,Output.class);
            i.putExtra("x", a1+a2+a3);

               Toast.makeText(Input.this, "Method OnClick has been invoked",Toast.LENGTH_SHORT).show();
               startActivity(i);    
        }
    });}}

您的输出活动很好,该活动没有任何变化。

于 2013-01-07T05:58:05.987 回答