2014-02-12 3 views
-2

Действительно новое для Android и программирования в целом.Смешивание букв с помощью EditText, нажатие кнопки

Просто интересно, может ли кто-нибудь помочь мне пойти на слово в EditText, а затем перепутать буквы и отобразить их?

Я пробовал много разных вещей, и этот вопрос помог How to jumble a word from EditText and apply the jumbled word into a TextView, но у меня все еще есть сила, близкая к ошибке.

Это мой XML:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/jumble" 
    /> 

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/Editbox1" 
    android:layout_below="@+id/Editbox1" 
    android:layout_marginTop="18dp" 
    android:text="@string/edit_text" /> 

<EditText 
    android:id="@+id/Editbox1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="21dp" 
    android:ems="10" 
    android:inputType="text" 
    android:text="@string/enter_text" > 
    </EditText> 

и Java:

package org.me.myandroidstuff; 

import java.util.ArrayList; 
import java.util.Collections; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Typeface; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.EditText; 

public class JumbleTextApplicationActivity extends Activity 
    implements OnClickListener { 

    public View TextView; 
    public View EditText; 
    public View Button; 
    EditText editbox = (EditText)findViewById(R.id.Editbox1); 
    TextView jumbledword = (TextView) findViewById(R.id.jumble); 
    Button btnJumble = (Button)findViewById(R.id.button); 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_jumble_text_application); 
    TextView tbox1 =(TextView)findViewById(R.id.textBox1); 
    tbox1.setTypeface(Typeface.SANS_SERIF); 
    tbox1.setTypeface(Typeface.MONOSPACE); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.jumble_text_application, menu); 
    return true; 
    } 

    @Override 
    public void onClick(View v) { 
    btnJumble.setOnClickListener(new View.OnClickListener(){ 
     public void onClick(View v){ 
     jumbleMe(editbox.getText().toString()); 
     } 
    }); 
    } 

    private void jumbleMe(String word) { 
    ArrayList<Character> jumblew = new ArrayList<Character>(); 
    for (int i = 0; i < word.length(); i++) { 
     jumblew.add(word.charAt(i)); 
    } 
    Collections.shuffle(jumblew); 
    String result = ""; 
    for (Character character : jumblew) { 
     result += character; 
    } 
    jumbledword.setText(result); 
    } 
} 
+1

Пожалуйста, разместите свой код и лог-код. –

ответ

1

Этот вопрос именно то, что вам нужно. Просто измените его код

word = (EditText)findViewById(R.id.entry); 
jumble = (TextView) findViewById(R.id.jumble); 
Button btnJumble = (Button)findViewById(R.id.button); 

btnJumble.setOnClickListener(new View.OnClickListener(){ 
    public void onClick(View v){ 
     jumbleMe(word.getText().toString()); 
} 

How to jumble a word from EditText and apply the jumbled word into a TextView

EDIT

Попробуйте

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/jumble"/> 

<Button 
    android:id="@+id/button" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignLeft="@+id/Editbox1" 
    android:layout_below="@+id/Editbox1" 
    android:layout_marginTop="18dp" 
    android:text="@string/edit_text" /> 

<EditText 
    android:id="@+id/Editbox1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_marginTop="21dp" 
    android:ems="10" 
    android:inputType="text" 
    android:text="@string/enter_text" /> 

и Java:

package org.me.myandroidstuff; 

import java.util.ArrayList; 
import java.util.Collections; 

import android.os.Bundle; 
import android.app.Activity; 
import android.graphics.Typeface; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.widget.Button; 
import android.widget.TextView; 
import android.widget.EditText; 

public class JumbleTextApplicationActivity extends Activity{ 

    public View TextView; 
    public View EditText; 
    public View Button; 

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

     EditText editbox = (EditText)findViewById(R.id.Editbox1); 
     TextView jumbledword = (TextView) findViewById(R.id.jumble); 
     Button btnJumble = (Button)findViewById(R.id.button); 
     TextView tbox1 =(TextView)findViewById(R.id.textBox1); 
     tbox1.setTypeface(Typeface.SANS_SERIF); 
     tbox1.setTypeface(Typeface.MONOSPACE); 

     btnJumble.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       jumbleMe(editbox.getText().toString()); 
      } 
     }); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // Inflate the menu; this adds items to the action bar if it is present. 
     getMenuInflater().inflate(R.menu.jumble_text_application, menu); 
     return true; 
    } 

    private void jumbleMe(String word) { 
     ArrayList<Character> jumblew = new ArrayList<Character>(); 
     for (int i = 0; i < word.length(); i++) { 
     jumblew.add(word.charAt(i)); 
    } 
     Collections.shuffle(jumblew); 
     String result = ""; 
     for (Character character : jumblew) { 
      result += character; 
     } 
     jumbledword.setText(result); 
    } 
} 
+0

Спасибо, но это все еще сила закрытия, я отредактировал свой вопрос с кодом, который у меня есть сейчас! Извините, что я такая боль, но я слишком невежлив. – user2237335

+0

Пришлось менять местами вещей, но, наконец, это заработало! Спасибо большое! : D теперь просто провалить остальную часть этого модуля ха-ха. Еще раз спасибо! :) – user2237335

+0

@ пользователь2237335 без проблем. Просто примите ответ, который вам помог, и вопрос будет закрыт – BigT

1
String text = yourTextView.getText().toString(); 
String[] words = text.split("\\s+"); 
List<String> wordList = Arrays.asList(words); 
Collections.shuffle(wordList); 
text = StringUtils.join(wordList, " "); 
yourTextView.setText(text); 

Сделайте это внутри своей кнопки на прослушивателе кликов, чтобы перетасовать слова. Для силового клея укажите логарифм

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