2016-11-15 5 views
0

API에서 가져온 데이터를 표시하려고합니다. 나는 데이터를 textview 및 로그로 표시 할 수 있지만 목록으로 표시 할 수는 없습니다.목록보기에서 json 데이터 표시

내가 오류 "Cannot resolve constructor"여기

Error:(72, 68) error: no suitable constructor found for ArrayAdapter(<anonymous FutureCallback<JsonArray>>,int,ArrayList<String>) constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable

무엇입니까 전체 오류 코드 Error:(72, 68) error: no suitable constructor found for ArrayAdapter(<anonymous FutureCallback<JsonArray>>,int,ArrayList<String>) constructor ArrayAdapter.ArrayAdapter(Context,int,int) is not applicable (argument mismatch; <anonymous FutureCallback<JsonArray>> cannot be converted to Context) constructor ArrayAdapter.ArrayAdapter(Context,int,String[]) is not applicable (argument mismatch; <anonymous FutureCallback<JsonArray>> cannot be converted to Context) constructor ArrayAdapter.ArrayAdapter(Context,int,List<String>) is not applicable (argument mismatch; <anonymous FutureCallback<JsonArray>> cannot be converted to Context)

public class MainActivity extends AppCompatActivity { 
ListView lView; 
TextView tView; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    lView = (ListView) findViewById(R.id.lv); 
    tView = (TextView) findViewById(R.id.textView); 

    Ion.with(this). 
      load("https://jsonplaceholder.typicode.com/users"). 
      asJsonArray(). 
      setCallback(
        new FutureCallback<JsonArray>() 
        { 
         @Override 
         public void onCompleted(final Exception ex, 
               final JsonArray array) 
         { 
          if(ex != null) 
          { 
           Toast.makeText(MainActivity.this, 
             "Error: " + ex.getMessage(), 
             Toast.LENGTH_LONG).show(); 
          } 
          else 
          { 
           ArrayList<String> list = new ArrayList<String>(); 
           for(final JsonElement element : array) 
           { 
            final JsonObject json; 
            final JsonElement nameElement; 
            final JsonElement usernameElement; 
            final String  name; 
            final String  username; 
            json    = element.getAsJsonObject(); 
            nameElement  = json.get("name"); 
            usernameElement = json.get("username"); 
            name    = nameElement.getAsString(); 
            username   = usernameElement.getAsString(); 

            Log.d("X", 
              name + " -> " + username); 
            list.add(name); 
            list.add(username); 
            tView.setText(name); 
           } 
           /* 
           for (int i = 0; i < array.size(); i++) { 
            list.add(array.get(i).toString()); 
           }*/ 
           ArrayAdapter<String> adapter = new ArrayAdapter<String> 
             (this,android.R.layout.simple_list_item_1,list); //ERROR HERE 
           lView.setAdapter(adapter); 
          } 

         } 

        }); 

} 
+0

ArrayAdapter와에서 "이" "Mainactivity.this"로 교체 어댑터 = 새로운 ArrayAdapter와 (이, android.R.layout.simple_list_item_1, 목록); – WritingForAnroid

답변

1

을 생성자에서 제거하고 MainActivity.this을 대신 사용하십시오. 이 경우 귀하의 경우 익명 내부 클래스의 인스턴스 (Activity)가 아닙니다.

1

당신의 첫 번째 매개 변수로 Context을 통과해야하다 Adapter 생성자. 너 this을 전달하면 Context이 아닙니다. 코드에 따르면 MainActivity.this이 작동 할 수 있습니다.