私はインターネット上でアンドロイドのフォーラムを閲覧していましたが、これはAndroidに関する質問に対して最も鋭く専門的な回答がある場所です。android projectのclass2のclass1からListViewを使用するには?
私はAndroid用のプログラミングを学んでいます。私は1つのアプリケーションに取り組んでいます。 私はSQLiteデータベースを読み書きして実装していますが、EditBoxなどのデータを表示していますが、ListViewを実装することはできません。
私は、データベースからのデータを表示するListViewでいくつかの例を持っています。 私はそれをデータベースからのデータを表示するのに適応させました。それは別のアプリケーションとして機能します。
私の質問は どうすれば修正したサンプルを自分のアプリケーションに追加できますか?
public class DataListView extends ListActivity
、それは私のアプリケーションからデータベースにアクセスするために別のクラスを使用しています:
public class DatabaseManager extends SQLiteOpenHelper
をしかし、私自身のアプリケーションは以下のクラスがあります。
public class MyWorkActivity extends Activity implements OnClickListener
の例では、クラスを持っていることを
自分のプロジェクトでDataListViewクラスを呼び出して使用するにはどうすればよいですか?
私は、このListViewを1週間以上進歩しているので、助けてください。
これは私のmain.xmlです:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableLayout1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@drawable/honeycomb2"
android:shrinkColumns="*"
android:stretchColumns="9" >
<TableRow
android:id="@+id/tableRow0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
</TableRow>
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:stretchColumns="6" >
<TextView
android:id="@+id/lblVrijemDolaska"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/lblVrijemeDolaska"
android:textSize="20sp" />
<requestFocus />
<TextView
android:id="@+id/lblVrijemeOdlaska"
android:layout_width="120dp"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/lblVrijemeOdlaska"
android:textSize="20sp" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center" >
<TextView
android:id="@+id/tvVrijemeDolaska"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="center"
android:shadowColor="#00ccff"
android:shadowDx="2"
android:shadowRadius="2"
android:text="Vr. dolaska"
android:textSize="30sp" />
<TextView
android:id="@+id/tvVrijemeOdlaska"
android:layout_width="70dp"
android:layout_height="wrap_content"
android:gravity="center"
android:shadowColor="#00ccff"
android:shadowDx="2"
android:shadowRadius="2"
android:text="Vr. odlaska"
android:textSize="30sp" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center" >
<TextView
android:id="@+id/lblDorucak3"
android:layout_gravity="center"
android:gravity="right"
android:text="@string/lblDorucak3" />
<TextView
android:id="@+id/lblPauza3"
android:layout_gravity="center"
android:gravity="right"
android:text="@string/lblPauza3" />
</TableRow>
<RelativeLayout
android:id="@+id/RelativeLayout1"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:gravity="center" >
<TableRow
android:id="@+id/tableRow4"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:stretchColumns="9"
android:gravity="center" >
<EditText
android:id="@+id/txtDorucak3"
android:gravity="center"
android:layout_span="1"
android:layout_width="60dp"
android:inputType="number" />
<TextView
android:id="@+id/lblRazmak"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=" " />
<EditText
android:id="@+id/txtPauza3"
android:layout_width="60dp"
android:layout_span="1"
android:gravity="center"
android:inputType="number" />
</TableRow>
</RelativeLayout>
<RelativeLayout
android:id="@+id/RelativeLayout2"
android:layout_width="35dp"
android:layout_height="wrap_content"
android:gravity="center" >
<Button
android:id="@+id/btnDodaj"
android:layout_width="75dp"
android:layout_height="85dp"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="61dp"
android:background="@drawable/dodaj"
android:scaleType="fitXY"
android:text="@string/btnDodaj" />
<Button
android:id="@+id/btnIzbrisi"
android:layout_width="75dp"
android:layout_height="85dp"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="68dp"
android:background="@drawable/izbrisi"
android:scaleType="fitXY"
android:text="@string/btnIzbrisi" />
</RelativeLayout>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="match_parent"
android:layout_height="wrap_content" >
</TableRow>
<ScrollView
android:id="@+id/scrollViewDatabase"
android:layout_width="fill_parent"
android:layout_height="49dp" >
<TextView
android:id="@+id/tvZaBazu"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</ScrollView>
<ListView
android:id="@+id/lista"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scrollbars="vertical"
android:textSize="5sp" >
</ListView>
</TableLayout>
そして、これは独立したアプリとしてではなく、NTの私のプロジェクトで私のデータベースと連携したListViewの例です:あなたは中のonClickリスナを実装している
import java.util.ArrayList;
import com.saigmn.DatabaseManager.DatabaseInfo;
import android.app.ListActivity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.os.Bundle;
import android.util.Log;
import android.widget.ArrayAdapter;
public class DataListView extends ListActivity {
private ArrayList<String> results = new ArrayList<String>();
private SQLiteDatabase newDB;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
openAndQueryDatabase();
displayResultList();
}
private void displayResultList() {
//TextView tView = new TextView(this);
//tView.setText("This data is retrieved from the database and only 4 " +
//"of the results are displayed");
//getListView().addHeaderView(tView);
setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, results));
getListView().setTextFilterEnabled(true);
}
private void openAndQueryDatabase() {
try {
newDB = this.openOrCreateDatabase(DatabaseInfo.IME_BAZE, MODE_PRIVATE, null);
Cursor c = newDB.rawQuery("SELECT * FROM " + DatabaseInfo.IME_TABELE, null);
if (c !=null && c.getCount() > 0) {
c.moveToFirst();
int Column1 = c.getColumnIndex("datum");
int Column2 = c.getColumnIndex("dolazak");
int Column3 = c.getColumnIndex("odlazak");
int Column4 = c.getColumnIndex("r_vrijeme");
do {
String datum = c.getString(Column1);
String dolazak = c.getString(Column2);
String odlazak = c.getString(Column3);
String r_vrijeme = c.getString(Column4);
results.add(datum + " * " + dolazak + " * " + odlazak + " -> " + r_vrijeme);
}while (c.moveToNext());
}
} catch (SQLiteException se) {
Log.e(getClass().getSimpleName(), "Nije moguće kreirati ili otvoriti bazu");
} finally {
if (newDB != null)
//newDB.execSQL("DELETE FROM " + DatabaseInfo.IME_TABELE);
newDB.close();
}
}
}
これは簡単な回答ですが、出発時刻と出発時刻の時間帯と計算時間を計算し、データをデータベースに追加するためのレイアウトがあります。以下では、ユーザーが項目を押して編集または削除できるように、データベースからすべてのデータを含むListViewを作成したいと考えています。 ListViewは自動的にレイアウトと共に表示されなければなりません。私はTextViewでそれを行うことができましたが、項目を押すことはできません。 –
ok ..あなたはtextviewとlistviewを一緒に持っているxmlファイルを投稿してください。フォーカスできないようにいくつかの値を設定する必要があります。 – 5hssba
かなり大きいXMLです: –