2017-11-10 4 views
0

私はカスタムアダプタを使用してgridViewを塗りつぶしていますが、間違っていることはわかりません。それは何かエラーや何も与えていません。 gridViewは単にデータを入力していません。最初は挿入するだけで複雑なビューを作成しようとしましたが、私はそれが問題の原因かもしれないと思った。しかし、私はそれに単一のtextViewを挿入することさえできません。アンドロイドのGridViewにデータが入力されていません

public class MainActivity extends AppCompatActivity { 

TextView v; 
Button submitButton; 
EditText e1,e2,e3; 
DatabaseHelper dbHelper; 
StringBuffer buffer; 
Cursor res; 
ArrayList<Book> list; 
BookAdapter adapter; 
GridView grid; 


@SuppressLint("NewApi") 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    buffer = new StringBuffer(); 
    Toolbar toolbar = findViewById(R.id.toolbar); 
    grid = findViewById(R.id.grid); 
    setSupportActionBar(toolbar); 
    getSupportActionBar().setTitle(" Book Wizard"); 
    getSupportActionBar().setIcon(getDrawable(R.drawable.ic_action_local_library)); 
    list = new ArrayList<Book>(); 
    dbHelper = new DatabaseHelper(this); 
    grid.setAdapter(new BookAdapter(MainActivity.this)); 
    fetchDB(); 
} 

そしてcustomAdapterクラスがある: -

public class BookAdapter extends BaseAdapter { 

    TextView textView; 
    Context context; 
    String[] names={"Looking for alaska","The alchemist","Lord of the rings"}; 

    BookAdapter(Context c){ 
     context = c; 
    } 

    @Override 
    public int getCount() { 
     return 0; 
    } 

    @Override 
    public Object getItem(int i) { 
     return null; 
    } 

    @Override 
    public long getItemId(int i) { 
     return 0; 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     textView = new TextView(context); 
     textView.setText(names[position]); 
     return textView; 
    } 
} 

答えて

1
getCountメソッドは、配列の長さと数を返すために、あなたのアダプタを変更し

public class BookAdapter extends BaseAdapter { 

TextView textView; 
Context context; 
String[] names = {"Looking for alaska", "The alchemist", "Lord of the rings"}; 

BookAdapter(Context c) { 
    context = c; 
} 

@Override 
public int getCount() { 
    return names.length; 
} 

@Override 
public Object getItem(int i) { 
    return names[i]; 
} 

@Override 
public long getItemId(int i) { 
    return i; 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    textView = new TextView(context); 
    textView.setText(names[position]); 
    return textView; 
}} 
+0

ああ、私はチュートリアルからこの小さな詳細が欠けていた –

1

あなたは行数として0を返されました。次のように

変更

@Override 
public int getCount() { 
    return names.length; 
} 
関連する問題