2017-01-13 6 views
2
public class homescreenjava extends AppCompatActivity { 


    public void addNewFields(View view) { 

     Intent callnew =new Intent(this,AddNewField.class); 
     startActivity(callnew); 

    } 
    public void showUserInfo(View view){ 

     Intent callnew =new Intent(this,showuserinfo.class); 
     startActivity(callnew); 

    } 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_homescreen); 
     ListView m_listview = (ListView) findViewById(R.id.list_view); 

     SQLiteOpenHelper AgroDatabase = new AgroDatabase(this); 
     SQLiteDatabase db = AgroDatabase.getReadableDatabase(); 
     Cursor cursor=db.query("fieldinfo",new String[]{"_id", "FieldName","Area"},null,null,null,null,null); 
     CursorAdapter listAdapter= new SimpleCursorAdapter(this, 
              android.R.layout.simple_list_item_1, 
              cursor, 
              new String[]{"FieldName"}, 
              new int[]{android.R.id.text1},0); 

     m_listview.setAdapter(listAdapter); 



    } 


    @Override 
    protected void onDestroy() { 
     super.onDestroy(); 
     cursor.close(); 
     db.close(); 
    } 
} 

Iamも同じクラスでカーソルとデータベースを閉じることができません。カーソルとデシベルここで解決することがカントは、私は私のクラスは、私は私の場合には、このメソッドを実装することができlistActivity 拡張したり、他の解決策がある場合onListItemClickが実現できることを読ん私はAndroidの通常のアクティビティでListviewを実装しようとしています。私はListviewにアイテムを表示することができましたが、私はクリックを検出できません

@Override 
     protected void onDestroy() { 
      super.onDestroy(); 
      cursor.close(); 
      db.close(); 
     } 

エラーメッセージです

public void onListItemClick(ListView listview, 
            View itemView, 
            int position, 
            long id){ 
     Intent intent=new Intent(homescreenjava.this,SecondHome.class); 
     startActivity(intent); 
    } 

私はこのアクティビティのXMLコードを入れています。

private SQLiteDatabase db; 
private Cursor cursor; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_homescreen); 
    ListView m_listview = (ListView) findViewById(R.id.list_view); 

    SQLiteOpenHelper AgroDatabase = new AgroDatabase(this); 
    db = AgroDatabase.getReadableDatabase(); 
    cursor = db.query("fieldinfo", new String[]{"_id", "FieldName", "Area"}, null, null, null, null, null); 

今、あなたはondestroy機能で閉じることができます:リストビューはこのように、最初のカーソルとDBグローバル変数を作成する必要があり、データベースカーソルを閉じるには、XML

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:id="@+id/activity_homescreen" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingStart="@dimen/activity_horizontal_margin" 
    android:paddingEnd="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:orientation="vertical" 
    tools:context="com.example.sagar.ahs.homescreenjava" 
    android:weightSum="1"> 

    <LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal"> 
    <ImageView 
     android:layout_width="120dp" 
     android:layout_height="77dp" 
     app:srcCompat="@drawable/leaf" 
     android:id="@+id/imageView2" 
     android:layout_gravity="end" 
     android:background="@color/colorAccent" 
     /> 

    <TextView 
     android:text="@string/app_name" 
     android:layout_width="match_parent" 
     android:layout_height="77dp" 
     android:id="@+id/textView2" 
     android:textSize="30sp" 
     android:textScaleX="2" 
     android:gravity="start|center" 
     android:elevation="1dp" 
     android:textColor="#aaaf" 
     android:textStyle="normal|bold" 
     android:background="@color/colorAccent" 
     /> 
</LinearLayout> 

    <TextView 
     android:text="@string/main_page" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:gravity="start|center" 
     android:id="@+id/textView5" 
     android:layout_weight="7.88" 
     android:textStyle="normal" 
     android:textSize="20sp" 
     android:background="@color/colorPrimary" 
     android:textColor="#ffff" 
     android:paddingStart="10dp" 
     android:paddingEnd="2dp" 
     android:paddingTop="10dp" 
     android:paddingBottom="8dp"/> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     > 

     <ImageButton 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      app:srcCompat="@drawable/plus" 
      android:id="@+id/imageButton8" 
      android:layout_weight="1" 
      android:background="@color/colorPrimary" 
      android:tint="#ffff" 
      android:onClick="addNewFields"/> 

     <ImageButton 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      app:srcCompat="@drawable/boss" 
      android:id="@+id/imageView" 
      android:tint="#ffff" 
      android:background="@color/colorPrimary" 
      android:layout_weight="1" 
      android:onClick="showUserInfo"/> 
    </LinearLayout> 

    <LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <TextView 
      android:text="@string/button_info_field" 
      android:layout_width="175dp" 
      android:layout_height="wrap_content" 
      android:id="@+id/textView7" 
      android:textColor="#ffff" 
      android:textSize="23sp" 
      android:background="@color/colorPrimary" 
      android:gravity="fill" 
      android:layout_weight="0.76"/> 

     <TextView 
      android:text="@string/button_info_UI" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/textView8" 
      android:layout_weight="1" 
      android:textColor="#ffff" 
      android:textSize="23sp" 
      android:background="@color/colorPrimary" 
      android:gravity="fill"/> 
    </LinearLayout> 


    <ListView 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
android:divider="@color/colorPrimary" 
     android:dividerHeight="3dp" 
     android:id="@+id/list_view" 
/> 



</LinearLayout> 
+0

は、私はあなたが持っているこのポストアドレスと同じ問題を考えています。 http://stackoverflow.com/questions/17851687/how-to-handle-the-click-event-in-listview-in-android – mumair

+0

[ListViewのクリックイベントをAndroidで処理する方法]の可能な複製(http ://stackoverflow.com/questions/17851687/how-to-handle-the-click-event-in-listview-in-android) – dorukayhan

+0

あなたの返信に感謝しますが、私はまだ私がなぜ閉じることができないのかわかりませんonDestroyメソッドのカーソルとデータベース? –

答えて

0

の最後です。

は、リストビュー項目のonclickを扱うOnCreateの内部に以下のコードは、次のとおりです。

m_listview.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
           long id) { 
      Log.v("TAG","listview item clicked"); 
     } 
    }); 
関連する問題