2012-05-11 4 views
1

У меня есть база данных с тремя столбцами «Производитель, модель и цена», и я сделал это так, чтобы при нажатии кнопки сохранить все в строке и передать строку в TextView. Идея заключается в том, что я хочу каким-то образом сделать текст кликабельным и когда текст будет нажат для определенного продукта, чтобы сохранить цену продукта в переменной.Доступный текст в android

Это код для отображения все в базе данных

package com.WareHouse; 

import android.app.Activity; 
import android.content.Intent; 
import android.database.Cursor; 
import android.database.sqlite.SQLiteDatabase; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 
import android.widget.TextView; 

public class viewall extends Activity { 

SQLiteDatabase myDB = null; 

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.vall); 

    Button vAll = (Button) findViewById(R.id.viewAll); 
    final TextView view2 = (TextView) findViewById(R.id.multiAutoCompleteTextView1); 

    vAll.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 

      try { 
       String Data = ""; 

       String TableName = "myTable"; 

       myDB = getBaseContext().openOrCreateDatabase(
         "DatabaseName", MODE_PRIVATE, null); 

       Cursor c = myDB 
         .rawQuery("SELECT * FROM " + TableName, null); 

       int Column1 = c.getColumnIndex("Field1"); 
       int Column2 = c.getColumnIndex("Field2"); 
            int Column3 = c.getColumnIndex("Field3"); 

       // Check if our result was valid. 
       c.moveToFirst(); 
       if (c != null) { 
        // Loop through all Results 
        do { 
         String Name = c.getString(Column1); 
         String Model = c.getString(Column2); 
                String Price = c.getStrin(Column3); 
         Data = Data + "Maker: " + Name + "\n" + "Model: " 
           + Model + "\n" +"Price: " + Price+ "\n"+"\n"; 
        } while (c.moveToNext()); 

       } 
       ////////////////////////////////////////// 
       view2.setText(Data.toString()); 
      } catch (Exception e) { 
       Log.e("Error", "Error", e); 
      } finally { 
       if (myDB != null) 
        myDB.close(); 
      } 

     } 
    }); 

    Button next = (Button) findViewById(R.id.buttonBack); 
    next.setOnClickListener(new View.OnClickListener() { 
     public void onClick(View view) { 
      Intent intent = new Intent(); 
      setResult(RESULT_OK, intent); 
      finish(); 
     } 

    }); 


} 
} 

Есть предложения?

Заранее спасибо.

ответ

2

добавить андроид: кликабельным = "истинный" для TextView как:

<TextView 
    android:id="@+id/multiAutoCompleteTextView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:clickable="true" 
    android:text="@string/hello" 
    /> 

EDIT:

В viewall активность:

final TextView view2 = (TextView) findViewById(R.id.multiAutoCompleteTextView1); 
view2.setOnClickListener(listener); 
private OnClickListener listener = new OnClickListener() { 
    public void onClick(View v) { 
     // TODO Auto-generated method stub 
     if (v.getId() == (R.id.multiAutoCompleteTextView1)) { 
      view2.setText(inname.getText() + "!" + "Welcome to Android"); 
     } 
     else { 
      Log.v(TAG, "...."); 
     } 
    } 

}; 
+1

Это должно работать нормально ....... ... –

+0

Извините за неудобный вопрос. Я начал изучать программирование на Android совсем недавно, но что делает intame.getText() именно так? – GoGo

+0

замените inname.getText() на multiAutoCompleteTextView1.getText() и измените код на своем пути –

Смежные вопросы