2016-11-10 9 views
-1

Я новичок в Android и Java, только что начался. Я пытаюсь создать приложение, которое показывает случайную строку, которая в моем случае является цитатой, из списка массивов. Я хочу, чтобы цитата отображалась в текстовом виде, но я также открыт для разных методов показа цитаты. Я пробовал два способа добиться этого, но никто из них не работает. Я замечаю, что в обоих случаях возникают проблемы с добавлением - когда я наводил курсор над добавлением (красным), он говорит, что не может разрешить символ «добавить». Вот моя первая попытка:ArrayList рандомизированных строк в textview, не может разрешить символ 'add'

import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

import com.google.android.gms.appindexing.Action; 
import com.google.android.gms.appindexing.AppIndex; 
import com.google.android.gms.appindexing.Thing; 
import com.google.android.gms.common.api.GoogleApiClient; 

import java.util.ArrayList; 
import java.util.Random; 

public class MainActivity extends AppCompatActivity { 

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

strings.add("quote 1"); 
strings.add("second quote"); 
strings.add("new quote"); 
strings.add("quote"); 
strings.add("sgbsb"); 
strings.add("sgsgb"); 
strings.add("sfgbdfg"); 
Random r = new Random(); 

String string = strings.get(r.nextInt(strings.size())); 
TextView text = (TextView) findViewById(R.id.textView2); 

private GoogleApiClient client; 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    client = new GoogleApiClient.Builder(this).addApi(AppIndex.API).build(); 
} 


public Action getIndexApiAction() { 
    Thing object = new Thing.Builder() 
      .setName("Main Page") // TODO: Define a title for the content shown. 
      // TODO: Make sure this auto-generated URL is correct. 
      .setUrl(Uri.parse("http://[ENTER-YOUR-URL-HERE]")) 
      .build(); 
    return new Action.Builder(Action.TYPE_VIEW) 
      .setObject(object) 
      .setActionStatus(Action.STATUS_TYPE_COMPLETED) 
      .build(); 
} 

@Override 
public void onStart() { 
    super.onStart(); 

    client.connect(); 
    AppIndex.AppIndexApi.start(client, getIndexApiAction()); 
} 

@Override 
public void onStop() { 
    super.onStop(); 
    AppIndex.AppIndexApi.end(client, getIndexApiAction()); 
    client.disconnect(); 
} 

}

В моей второй попытки, которая использует несколько иной код (именно поэтому я оставил много уходит), проблема становится худшим. Он имеет проблемы с NextINT, размер и получить.

import android.net.Uri; 
import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.widget.TextView; 

import com.google.android.gms.appindexing.Action; 
import com.google.android.gms.appindexing.AppIndex; 
import com.google.android.gms.appindexing.Thing; 
import com.google.android.gms.common.api.GoogleApiClient; 

import java.util.ArrayList; 
import java.util.Random; 

public class MainActivity extends AppCompatActivity { 


    ArrayList<String> strings = new ArrayList<String>(); 
strings.add("My adress is 1274 ogden st"); 
strings.add("fsdfs"); 
strings.add("bsgsgb"); 
strings.add("sgbfg"); 
strings.add("sgbsb"); 
strings.add("sgsgb"); 
strings.add("sfgbdfg"); 


Random random = new Random(); 

strings.get(random.nextInt(strings.size())) 
TextView text = (TextView) findViewById(R.id.textView2); 

private GoogleApiClient client; 
text.seText((CharSequence)strings)); 

Есть ли способ устранить проблему с разрешением символа? Я пробовал все предложения, которые я нашел в Интернете, включая Stackoverflow.

ответ

0

Проблема в том, что вы вызываете функции в месте, которое они не могут быть вызваны. Поскольку утверждения должны появляться в блоке кода.

Следующая является основным классом Java:

public class TheClassName { 
    // You can now define methods or field variables here, like so: 
    private int aField; 
    private List<String> strings = new ArrayList<String>(); 

    // The following is called a Constructor 
    public TheClassName() { 
     // this is a place where you can initialize any field or manipulate it. 
     this.aField = 2; // would set the value for aField to 2. 
     // you can also add some Strings to the ArrayList here 
     strings.add("fsdfs"); 
    } 

    // method: 
    public void aMethod() { 
     // you can now execute code here 
     aField = aField + 1; // adds 1 to the field 
    } 
} 

я надеюсь, что это на самом деле помогает вам.