Объявление метода контекста с этим - PullRequest
0 голосов
/ 01 июля 2011

Как бы я объявил этот метод, если бы я хотел сделать это в методе onClick:

public void addBook(Context context) {

Было бы addBook(context);?

У меня проблемы с его реализацией. Я думаю, что это продолжает вызывать закрытие моей активности, потому что я неправильно набираю:

public class book_edit extends Activity {

public String book_name;
public String isbn;
public String author;
public float ratings;
public EditText title;
public EditText book_author;
public EditText isbn_number;
public EditText name;
public RatingBar ratingbar;
public Button save;

@Override
public void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);
    setContentView(R.layout.edit_book_list);

    title = (EditText)findViewById(R.id.title);
    book_author = (EditText)findViewById(R.id.author);
    isbn_number = (EditText)findViewById(R.id.isbn);
    save = (Button)findViewById(R.id.save);

    save.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

        }
    });

    final RatingBar ratingbar = (RatingBar) findViewById(R.id.ratingBar1);
    ratingbar.setOnRatingBarChangeListener(new OnRatingBarChangeListener() {

        public void onRatingChanged(RatingBar ratingBar, float rating,      boolean fromUser) {

            ratingbar.setRating(rating);

        }
    });

    }

public void addBook(Context context) {
String tag = "Excersising BookProvider";
Log.d(tag, "adding a book");

ContentValues cv = new ContentValues();

cv.put(BookProviderMetaData.BookTableMetaData.BOOK_NAME, book_name);

cv.put(BookProviderMetaData.BookTableMetaData.BOOK_ISBN, isbn);

cv.put(BookProviderMetaData.BookTableMetaData.BOOK_AUTHOR, author);

ContentResolver cr = context.getContentResolver();

Uri uri    =  BookProviderMetaData.BookTableMetaData.CONTENT_URI;

Log.d(tag, "book insert uri: " +uri);

Uri insertedUri = cr.insert(uri, cv);

Log.d(tag, "inserted    uri:" + insertedUri);

   }


}

Ответы [ 2 ]

1 голос
/ 01 июля 2011

Метод onClick идет с параметром View

onClick(View view);

Вы всегда можете вызвать view.getContext (), чтобы получить контекстный экземпляр для вашей addBook

save.setOnClickListener(new View.OnClickListener() {
      @Override
     public void onClick(View view) {
        addBook(view.getContext());
     }     
}); 
0 голосов
/ 01 июля 2011

Вы должны установить book_edit.this в качестве параметра для вашего метода, который должен работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...