2016-09-23 4 views
-1

これは私のクラスで、リストアダプターR.id.listView1にデータを表示する場所です。カスタムアダプターは、アンドロイド に新しいと私のリーグの他のすべてのチュートリアルです。 これは私が大量の助けとしてコミュニティを形成する必要がある小さな助けです。リストビューカスタムアダプターはアンドロイドで、アレイアダプターを渡してフォントを変更する場合のみ

import android.content.Context; 
import android.content.res.AssetManager; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.graphics.Color; 
import android.graphics.Typeface; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.util.Log; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.ArrayAdapter; 
import android.widget.BaseAdapter; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 

import java.util.ArrayList; 


public class View_Data extends AppCompatActivity { 


    public ArrayList<String> datax = new ArrayList<String>(); //used to store data from db 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.view_data); 
     final String LOG_TAG = View_Data.class.getSimpleName(); 
     Typeface custom_font = Typeface.createFromAsset(getAssets(), "fonts/AABOHI.TTF"); // this is the custom font i want to use 

     try { 
      String table = "questions"; 
      String[] columnsToReturn = {"question_id", "question", "def_font"}; 
      SQLiteDatabase mydatabase = openOrCreateDatabase("Data",MODE_PRIVATE,null); 
      Typeface font = Typeface.createFromAsset(getAssets(), "fonts/AABOHI.TTF"); 

      Cursor dbCursor = mydatabase.query(table, null,null, null, null, null, null); 

      dbCursor.moveToFirst(); 

      String temp ; 

      int i = 0; 
      ListView listView1 = (ListView) findViewById(R.id.listView1); 

      ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
        android.R.layout.simple_list_item_1, datax); 
      listView1.setAdapter(adapter); 



      while (!dbCursor.isAfterLast()) { 
       Log.v(LOG_TAG, String.valueOf(dbCursor.getString(0))); 
       Log.v(LOG_TAG, String.valueOf(dbCursor.getString(1))); 

       temp = " Question : " + String.valueOf(dbCursor.getString(1)) ;//This is what i want in a custom font 



       datax.add(temp); 

       dbCursor.moveToNext(); 
       i++; 
      } 

      dbCursor.close(); 


      for (String row : datax) { 

       Log.v(LOG_TAG, row); 

      } 


     } catch (Exception e) { 
      Log.v(LOG_TAG, e.toString()); 
     } 

     ListView listView1 = (ListView) findViewById(R.id.listView1); 

     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_list_item_1, datax); 
     listView1.setAdapter(adapter); 



    } 
} 
+0

activity_mainあなたはどのような問題に直面していますか? – AbhayBohra

+0

カスタムテキストビューを使用するリストの行レイアウトを作成できます。あなたの行の – anonymous

答えて

1

Please see the screenshotあなたは多くのことを変更する機能を有することができる要件のこのタイプのベースアダプタのために行くことができます。ベースアダプタを知っているし、実装するには、リンクを通過:

How to customize listview using baseadapter

http://abhiandroid.com/ui/baseadapter-tutorial-example.html

あなたが簡単に必要なデータやフォントのためのベースアダプタをカスタマイズすることができます。

Create a base adapter as below : 


public class CustomAdapter extends BaseAdapter { 
    Context context; 
    ArrayList<String> arrayList; 
    LayoutInflater inflter; 
    Typeface font; 

    public CustomAdapter(Context applicationContext, ArrayList<String> arrayList) { 
     this.context = applicationContext; 
     this.arrayList = arrayList; 
     inflter = (LayoutInflater.from(applicationContext)); 
     font = Typeface.createFromAsset(context.getAssets(), "fonts/Questrial-Regular.ttf"); 
    } 

    @Override 
    public int getCount() { 
     return arrayList.size(); 
    } 

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

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

    @Override 
    public View getView(int i, View view, ViewGroup viewGroup) { 
     view = inflter.inflate(R.layout.activity_item, null); 
     TextView tv = (TextView) view.findViewById(R.id.tv); 
     tv.setText(arrayList.get(i)); 
     tv.setTypeface(font); 
     return view; 
    } 
} 

主な活動

public class MainActivity extends AppCompatActivity { 
    ArrayList<String> simpleStringArrayList; 
    ListView listView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     simpleStringArrayList = new ArrayList<>(); 
     simpleStringArrayList.add("aaa"); 
     simpleStringArrayList.add("bbb"); 
     simpleStringArrayList.add("ccc"); 
     simpleStringArrayList.add("ddd"); 
     simpleStringArrayList.add("eee"); 
     simpleStringArrayList.add("fff"); 
     simpleStringArrayList.add("ggg"); 

     listView = (ListView) findViewById(R.id.listView); 
     listView= (ListView) findViewById(R.id.listView); 
     CustomAdapter customAdapter = new CustomAdapter(this, simpleStringArrayList); 
     listView.setAdapter(customAdapter); 
    } 
} 

activity_item

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <TextView 
     android:id="@+id/tv" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

</LinearLayout> 

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.dell1.myapplication.MainActivity"> 

    <ListView 
     android:id="@+id/listView" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     /> 
</RelativeLayout> 
+0

: TextView tv =(TextView)view.findViewById(R.id.tv); R.id.tvとは何ですか?私のXMLにはテキストビューはありませんが、listviewはlistviewに変更してフォントを適用できますか? lisviewのリソースIDは:R.id.listView1で、Set TypeFaceはどのように使用しますか? – dummystreamer

+0

テキストビュー(tv)のみを含む別のレイアウト(activity_item)を作成する必要があります。このレイアウトは、getViewメソッドのカスタム・アダプターにロードされます。 データベースからデータをarraylistに読み込んだ後、アクティビティクラスから、このarraylistをパラメータとしてCustumAdapterに渡します。 – Nishith

+0

私はあなたが言ったすべてをやったが、画面が表示されているが表示されていないときは冗長なログにデータが表示されます。 \ – dummystreamer

関連する問題