0

私は次のようなことをしています

JSONArray json = uf.getAllRows();
(int x = 0; x <= json.length(); x++) {
JSONObject jo = json.getJSONObject(x); //Eclipse is suggesting that use try-catch here.

String name = jo.getString("username");
mainll[x] = new LinearLayout(this);
mainll[x].setId(x);
mainll[x].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,   LayoutParams.WRAP_CONTENT));
mainll[x].setGravity(Gravity.CENTER);
.
.
.
.
}

try catchを使用すると、次の行で「jo」が認識されません。

String name = jo.getString("username");

誰かがこの問題を解決する方法を教えてもらえますか?

4

5 に答える 5

3

このようにしてください:

JSONObject jo;
try {
    jo = json.getJSONObject(x);
} catch (...) {
    jo = null; // or other error handling
}
于 2012-05-31T02:25:56.803 に答える
3

単純な解決策は、変数をtry..catchブロックの外で宣言して、アクセスできるようにすることです。

例えば、

String myVariable = "";

try
{
     .
     .
     .
     myVariable = "Some Assignment"; 
}
catch ( Exception e ) { }
于 2012-05-31T02:26:03.237 に答える
1

すべてを包むだけ

try{
  JSONArray json = uf.getAllRows();
  (int x = 0; x <= json.length(); x++) {
  JSONObject jo = json.getJSONObject(x); //Eclipse is suggesting that use try-catch here.

  String name = jo.getString("username");
  mainll[x] = new LinearLayout(this);
  mainll[x].setId(x);
  mainll[x].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
  mainll[x].setGravity(Gravity.CENTER);
}
catch(Exception e){}
于 2012-05-31T02:26:03.153 に答える
1

jo変数を外部で次のように宣言する必要がありますtry/catch

String name;
try{

String name = jo.getString("username");
mainll[x] = new LinearLayout(this);
mainll[x].setId(x);
mainll[x].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,   LayoutParams.WRAP_CONTENT));
mainll[x].setGravity(Gravity.CENTER);
}
catch(Exception ex)
{
 ///
}
于 2012-05-31T02:29:25.450 に答える
0
JSONArray json = uf.getAllRows();
JSONObject jo = null;
String name = "";

(int x = 0; x <= json.length(); x++) {
   try{
     jo = json.getJSONObject(x); //Eclipse is suggesting that use try-catch here.
   }catch(Exception ex){}

   name = jo.getString("username");
   mainll[x] = new LinearLayout(this);
   mainll[x].setId(x);
   mainll[x].setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
   mainll[x].setGravity(Gravity.CENTER);
}
于 2012-05-31T05:00:48.563 に答える