2016-08-14 16 views
-3

私が編集テキスト からのデータを文字列配列を移入しようとされているが、それは文字列型が必要とされると言うと私はに非常に新しいです、私にエラーを与え続け、すべてのAndroidとそれが何であるかを知っている、それはまたStringString sがJavaでaddと呼ばれるメソッドを持っていないです、それは方法がテキストフィールドからの入力を持つ配列を移入する方法

package com.android.beez.bored; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.TextView; 

import java.util.ArrayList; 

public class MainActivity extends AppCompatActivity { 

Button save; 
Button pushMe; 
TextView textOne; 
String hobby = new String(); 
EditText txt; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    txt = (EditText)findViewById(R.id.txtinput); 
    save = (Button)findViewById(R.id.btnsave); 
    save.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      String getInput = txt.getText().toString(); 
      hobby.add(getInput); 
     } 


    }); 
    pushMe = (Button) findViewById(R.id.pushMe); 
    pushMe.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      int rando = (int)(Math.random()*3); 
      textOne.setText(hobby[rando]); 
     } 
    }); 

} 
} 

答えて

0

hobbyを追加解決できないと言っていません。

最初の答えはにはadd()メソッドがありません示されているように、SタイプString[]

+0

を私は、それは文字列配列ではない配列リストになりたい私は、それはまだ「textOneに言う「趣味+ =か、getInput」に行を変更した後、私は – TheRealBeez

+0

をどのように変更する必要があります.setText(hobby [rando]); 'ラインタイの配列型が – TheRealBeez

+0

はいを​​期待されていて、textOne.setText(趣味) 'に変更しなければならない;' –

0

でなければならない「hobbyを示すコードでhobby[rando]がありますのでStringからString[]にS型」あなたはhobbyを変更する必要がありますJava Stringクラス。しかし、代わりにconcat()を使うことができ、指定された文字列を現在の文字列の末尾に連結します。したがって、コードの残りの部分に影響を与えずに hobby.add(getInput);hobby = hobby.concat(getInput);に変更してください。

0

「アレイ」を文字列として宣言したようです。

私の意見では、動的にaddの配列を埋めたいと思っているので、ArrayList<String>がより適しています。

変更し、これにhobbyの宣言は:

ArrayList<String> hobbies = new ArrayList<>(); 

を変更する必要があるもう一つは、pushMeボタンのクリックでリスナーです。

変更この:これに

textOne.setText(hobby[rando]); 

textOne.setText(hobbies.get(rando)); 

[]構文は配列ではなく、配列のリストにアクセスするためのものですので。

あなたは配列リストにランダムな項目にアクセスし、テキストビューで表示したいようにとにかく、あなたのコードがそうです。これをやりたい場合はMath.random() * 3が機能しません。

代わりにこれを試してみてください:

Random r = new Random(); 
int rando = r.nextInt(hobbies.size()); 
textOne.setText(hobbies.get(rando)); 
+0

非常に急務であるが、いつでも、私はそれがクラッシュしたアプリを開く配列initialzer語ります – TheRealBeez

関連する問題