簡単かもしれないイライラする問題があります。Java の配列は、イライラするほど直感的ではないようです。
複数のタイトルを持つ title という文字列配列があります
ここに配列の一部があります
private String[] title = {
"Abundance",
"Anxiety",
"Bruxism",
"Discipline",
"Drug Addiction"
}
コードがコンパイルされて正常に実行されるので、この部分は問題ないようです。この配列に基づいて別の配列を作成したいと思います。新しい配列は、この配列のデータと連結された静的テキストになり、さらに静的テキストになります。
2 つの静的文字列を定義します
String urlbase = "http://www.somewhere.com/data/";
String imgSel = "/logo.png";
だから私は新しい配列の宣言を追加しました
String[] mStrings;
次に、基本的な for ループを作成して反復し、新しい配列の要素を作成します
for(int i=0;i<title.length;i++) {
mStrings[i] = urlbase + title[i].replaceAll("[^a-zA-Z]", "").toLowerCase() + imgSel;
}
ループは配列値を取得し、非アルファ文字を取り除き、小文字にします。
麻薬中毒
になる
麻薬中毒
こんな感じで締めくくりたい
mStrings[0]="http://www.somewhere.com/data/abundance/logo.png"
mStrings[1]="http://www.somewhere.com/data/anxiety/logo.png"
mStrings[2]="http://www.somewhere.com/data/bruxism/logo.png"
mStrings[3]="http://www.somewhere.com/data/discipline/logo.png"
mStrings[4]="http://www.somewhere.com/data/drugaddiction/logo.png"
mStrings を宣言するためにいくつかの異なる試みを試みましたが、除外するとすべてが正しくありませんでした Eclipse はこれを示唆しています
String[] mStrings;
これはかなり簡単で正しいはずですが、その後に何かを入力すると、次のようなエラーが表示されます
Syntax error on token ";", { expected after this token
他の配列と1対1なので、宣言でこれを試しましたが、これも失敗します
String[] mStrings[title.length];
量を与えるだけ
エラーは宣言のどこかにあると考えていますが、それを明確に説明しているドキュメントが見つからないようです。
宣言だけでなく、配列のロードも発生することを期待しているようですが、これは望ましくありませんが、3つの要素でロードしようとしましたが、それでも正しく機能しませんでした
私が述べたように、forループにロードしたい
どんな助けでも大歓迎です。
配列サイズを設定しようとしましたが、同じエラーが発生しました
ここに正確なコードがあります
多分それは他の場所にあります
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ListView;
public class MainActivity extends Activity {
ListView list;
LazyAdapter adapter;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
list=(ListView)findViewById(R.id.list);
adapter=new LazyAdapter(this, mStrings);
list.setAdapter(adapter);
Button b=(Button)findViewById(R.id.button1);
b.setOnClickListener(listener);
}
@Override
public void onDestroy()
{
list.setAdapter(null);
super.onDestroy();
}
public OnClickListener listener=new OnClickListener(){
public void onClick(View arg0) {
adapter.imageLoader.clearCache();
adapter.notifyDataSetChanged();
}
};
private String[] title = {
"Abundance",
"Anxiety",
"Bruxism",
"Discipline",
"Drug Addiction"
}
String urlbase = "http://imobilize.s3.amazonaws.com/giovannilordi/data/";
String imgSel = "/logo.png";
String[] mStrings = new String[title.length];
ここにエラーが表示されます
for(int i=0;i<title.length;i++) {
mStrings[i] = urlbase + title[i].replaceAll("[^a-zA-Z]", "").toLowerCase() + imgSel;
}
(ソース: imobilizeit.com )